|
|
|
RequiresNew - он точно приостанавливает уже открытую транзакцию?
|
|||
|---|---|---|---|
|
#18+
Везде работу этого атрибута описывают примерно так: 1.Приостанавливает клиентскую транзакцию. 2.Начинает новую транзакцию. 3.Посылает запрос в метод. 4.Продолжает клиентскую транзакцию после завершения метода. Что значит приостанавливает транзакцию? Как ее можно приостановить? С транзакцией вроде бы возможны только две операции: commit или rollback. Внешняя транзакция, внутри которой вызвался наш метод с @Transactional(propagation = Propagation.RequiresNew), допустим увеличивает какое-то значение в каком-то числовом поле. Мы её прерываем, и допустим уменьшаем/увеличиваем в своем методе это же значение. А потом та транзакция возобновляется, и продолжает свое дело. И где же целостность данных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2015, 16:02 |
|
||
|
RequiresNew - он точно приостанавливает уже открытую транзакцию?
|
|||
|---|---|---|---|
|
#18+
А, почитал дальше и почти понял. RequiresNew должен использоваться только для операций независимых от первой транзакции. А то что, транзакцию в принципе можно приостановить, объясняется тем, то это спринговая(или EJB-шная) транзакция, а не транзакция БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.08.2015, 17:01 |
|
||
|
RequiresNew - он точно приостанавливает уже открытую транзакцию?
|
|||
|---|---|---|---|
|
#18+
eklm861.Приостанавливает клиентскую транзакцию. А зачем её приостанавливать? Она убежит куда-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.08.2015, 08:20 |
|
||
|
RequiresNew - он точно приостанавливает уже открытую транзакцию?
|
|||
|---|---|---|---|
|
#18+
В русскоязычных источниках пишут так. Гляну англоязычные авторMethod 2 executes in a new transaction, and the outer transaction is suspended ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.08.2015, 22:51 |
|
||
|
RequiresNew - он точно приостанавливает уже открытую транзакцию?
|
|||
|---|---|---|---|
|
#18+
eklm86В русскоязычных источниках пишут так. Гляну англоязычные авторMethod 2 executes in a new transaction, and the outer transaction is suspended Просто вопрос странный. Транзакция работает в контексте потока. Вот исполняет поток Method 1, во внешней транзакции. Вот Method 2, перед его исполнением запустилась другая транзакция. Внимание вопрос, как вы себе вообще представляете не приостановленную внешнюю транзакцию учитывая что обе транзакции прибиты к одному потоку, который может исполнять только 1 метод в определенный момент времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2015, 08:21 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39020989&tid=2125105]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
152ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 232ms |
| total: | 489ms |

| 0 / 0 |
