|
TransactionManagementType.BEAN
|
|||
---|---|---|---|
#18+
Добрый день всем. Подскажите, пожалуйста, как будут вести себя транзакции BMT, если я не задам в бине действий с транзакциями: .begin, .commit и т.д.? Верно ли я понимаю, что транзакция будет создана неявно при старте, и завершена при окончании работы экземпляра бина? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 13:30 |
|
TransactionManagementType.BEAN
|
|||
---|---|---|---|
#18+
grinnДобрый день всем. Подскажите, пожалуйста, как будут вести себя транзакции BMT, если я не задам в бине действий с транзакциями: .begin, .commit и т.д.? Верно ли я понимаю, что транзакция будет создана неявно при старте, и завершена при окончании работы экземпляра бина? Насколько мне известно, транзакций в бине не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 16:22 |
|
TransactionManagementType.BEAN
|
|||
---|---|---|---|
#18+
grinnДобрый день всем. Подскажите, пожалуйста, как будут вести себя транзакции BMT, если я не задам в бине действий с транзакциями: .begin, .commit и т.д.? Верно ли я понимаю, что транзакция будет создана неявно при старте, и завершена при окончании работы экземпляра бина?Нет, не будет создана. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 18:09 |
|
TransactionManagementType.BEAN
|
|||
---|---|---|---|
#18+
Спасибо за ответы. Не будет транзакции bmt, но будут транзакции уровня бд, так? Спрашиваю потому, что в бине отрабатывает цикл, и данные в бд пишутся нормально, даже без явного открытия/закрытия транзакций. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 18:35 |
|
TransactionManagementType.BEAN
|
|||
---|---|---|---|
#18+
grinnСпасибо за ответы. Не будет транзакции bmt, но будут транзакции уровня бд, так? Спрашиваю потому, что в бине отрабатывает цикл, и данные в бд пишутся нормально, даже без явного открытия/закрытия транзакций. Поскольку кода вы нам не представили, то нам остается только телепатия. Поскольку телепатировать мне не впервой (по работе приходилось "чинить", правда, даже спасибо не говорили, настолько им было неловко), то значит у вас не закрытый перелом а CMT. PS даю подсказку - 1) sessionContext.getUserTransaction() 2) залезать через intercept(...) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 19:38 |
|
TransactionManagementType.BEAN
|
|||
---|---|---|---|
#18+
grinnСпасибо за ответы. Не будет транзакции bmt, но будут транзакции уровня бд, так? Спрашиваю потому, что в бине отрабатывает цикл, и данные в бд пишутся нормально, даже без явного открытия/закрытия транзакций. В БД каждый запрос будет оборачиваться в транзакцию (если Connection.autoCommit = true, что есть по умолчанию). Даже когда вы через какой-то другой клиент делаете селекты в базе без транзакций, они все равно оборачиваются в транзакции. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2019, 20:19 |
|
TransactionManagementType.BEAN
|
|||
---|---|---|---|
#18+
Спасибо еще раз всем за ответы. К сожалению, выложить код не могу, так как промышленный. Суть в том, что в бине в одном методе соединение идет к двум разным БД - из одной данные читаются, в другую - записываются. При запуске вываливалась ошибка: ErrorBean: java.sql.SQLException: Error in allocating a connection. Cause: java.lang.IllegalStateException: Local transaction already has 1 non-XA Resource: cannot add more resources. Решили проблему добавлением к бину только аннотации: Код: java 1.
Вот и пытаюсь понять, почему это работает? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2019, 07:36 |
|
TransactionManagementType.BEAN
|
|||
---|---|---|---|
#18+
grinnСуть в том, что в бине в одном методе соединение идет к двум разным БД Вот она суть проблемы :) Что у вас разные пулы соединений и транзакция распределенная . grinnРешили проблему добавлением к бину только аннотации: Код: java 1.
ну т.е. вывели конкретную операцию из общей транзакции. Думаю, такой же эффект приведет REQUIRES_NEW ErrorLocal transaction already has 1 non-XA Resource: cannot add more resources. Если у вас несколько пулов соединений настроено на сервере приложений, то только один пул может быть без поддержки XA. Или настраивайте все соединения через драйвера XA. Тогда можно будет снова вернуть управление транзакциями Контейнеру (CMP) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2019, 09:50 |
|
TransactionManagementType.BEAN
|
|||
---|---|---|---|
#18+
grinnВот и пытаюсь понять, почему это работает? https://stackoverflow.com/questions/44458736/transactionmanagementtype-container-vs-transactionmanagementtype-bean ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2019, 09:51 |
|
TransactionManagementType.BEAN
|
|||
---|---|---|---|
#18+
Большое спасибо, буду изучать. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2019, 11:41 |
|
TransactionManagementType.BEAN
|
|||
---|---|---|---|
#18+
grinnБольшое спасибо, буду изучать. Придётся по сути всё из стандартного для вменяемого программиста про транзакции изучать. То есть ничего не знаете. Транзакции есть в БД, а управлять ими можно из клиента, при этом БД может быть несколько, а помимо БД могут быть и другие транзакционные сервисы. И вот по всему дереву от клиента (EJB в данном случае) через JDBC и до всех транзакционных сервисов одновременно с учётом их внутренних особенностей - это всё, вообще-то, надо понимать. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.03.2019, 12:15 |
|
|
start [/forum/topic.php?fid=59&msg=39789200&tid=2121416]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 342ms |
total: | 483ms |
0 / 0 |