Вне или по крайней мере на внешнем уровне API базы данных.
Если вы поручаете внутри каждой хранимой процедуры, то вы, возможно, также автокоммит включена, изображение следующие хранимые процедуры
create_user_with_email_address
calls -> create_user
calls -> create_email_address
, если вы внесете в любом CREATE_USER/create_email_address то create_user_with_email_address больше не может быть транзакционные, если create_email_address не удалось, create_user уже был зафиксирован, и у вас были сломанные данные.
Положите транзакцию как можно выше, чтобы сохранить все в ней.
Не будет ли транзакция внутри SP просто соединяться с внешней областью транзакций, чтобы фиксация/откат работали прозрачно? –