Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / RequiresNew - он точно приостанавливает уже открытую транзакцию? / 5 сообщений из 5, страница 1 из 1
01.08.2015, 16:02
    #39020989
eklm86
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RequiresNew - он точно приостанавливает уже открытую транзакцию?
Везде работу этого атрибута описывают примерно так:
1.Приостанавливает клиентскую транзакцию.
2.Начинает новую транзакцию.
3.Посылает запрос в метод.
4.Продолжает клиентскую транзакцию после завершения метода.

Что значит приостанавливает транзакцию? Как ее можно приостановить? С транзакцией вроде бы возможны только две операции: commit или rollback. Внешняя транзакция, внутри которой вызвался наш метод с @Transactional(propagation = Propagation.RequiresNew), допустим увеличивает какое-то значение в каком-то числовом поле. Мы её прерываем, и допустим уменьшаем/увеличиваем в своем методе это же значение. А потом та транзакция возобновляется, и продолжает свое дело. И где же целостность данных?
...
Рейтинг: 0 / 0
01.08.2015, 17:01
    #39021002
eklm86
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RequiresNew - он точно приостанавливает уже открытую транзакцию?
А, почитал дальше и почти понял. RequiresNew должен использоваться только для операций независимых от первой транзакции. А то что, транзакцию в принципе можно приостановить, объясняется тем, то это спринговая(или EJB-шная) транзакция, а не транзакция БД.
...
Рейтинг: 0 / 0
03.08.2015, 08:20
    #39021396
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RequiresNew - он точно приостанавливает уже открытую транзакцию?
eklm861.Приостанавливает клиентскую транзакцию.
А зачем её приостанавливать? Она убежит куда-то?
...
Рейтинг: 0 / 0
04.08.2015, 22:51
    #39022970
eklm86
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RequiresNew - он точно приостанавливает уже открытую транзакцию?
В русскоязычных источниках пишут так.
Гляну англоязычные
авторMethod 2 executes in a new transaction, and the outer transaction is suspended
...
Рейтинг: 0 / 0
05.08.2015, 08:21
    #39023058
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RequiresNew - он точно приостанавливает уже открытую транзакцию?
eklm86В русскоязычных источниках пишут так.
Гляну англоязычные
авторMethod 2 executes in a new transaction, and the outer transaction is suspended
Просто вопрос странный. Транзакция работает в контексте потока. Вот исполняет поток Method 1, во внешней транзакции. Вот Method 2, перед его исполнением запустилась другая транзакция.
Внимание вопрос, как вы себе вообще представляете не приостановленную внешнюю транзакцию учитывая что обе транзакции прибиты к одному потоку, который может исполнять только 1 метод в определенный момент времени.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / RequiresNew - он точно приостанавливает уже открытую транзакцию? / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]