Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / TransactionManagementType.BEAN / 11 сообщений из 11, страница 1 из 1
20.03.2019, 13:30
    #39789006
grinn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TransactionManagementType.BEAN
Добрый день всем.
Подскажите, пожалуйста, как будут вести себя транзакции BMT, если я не задам в бине действий с транзакциями: .begin, .commit и т.д.?
Верно ли я понимаю, что транзакция будет создана неявно при старте, и завершена при окончании работы экземпляра бина?
...
Рейтинг: 0 / 0
20.03.2019, 16:22
    #39789155
cossack5
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TransactionManagementType.BEAN
grinnДобрый день всем.
Подскажите, пожалуйста, как будут вести себя транзакции BMT, если я не задам в бине действий с транзакциями: .begin, .commit и т.д.?
Верно ли я понимаю, что транзакция будет создана неявно при старте, и завершена при окончании работы экземпляра бина?
Насколько мне известно, транзакций в бине не будет.
...
Рейтинг: 0 / 0
20.03.2019, 18:09
    #39789200
сезонатор
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TransactionManagementType.BEAN
grinnДобрый день всем.
Подскажите, пожалуйста, как будут вести себя транзакции BMT, если я не задам в бине действий с транзакциями: .begin, .commit и т.д.?
Верно ли я понимаю, что транзакция будет создана неявно при старте, и завершена при окончании работы экземпляра бина?Нет, не будет создана.
...
Рейтинг: 0 / 0
20.03.2019, 18:35
    #39789209
grinn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TransactionManagementType.BEAN
Спасибо за ответы.
Не будет транзакции bmt, но будут транзакции уровня бд, так?
Спрашиваю потому, что в бине отрабатывает цикл, и данные в бд пишутся нормально, даже без явного открытия/закрытия транзакций.
...
Рейтинг: 0 / 0
20.03.2019, 19:38
    #39789238
Пылинка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TransactionManagementType.BEAN
grinnСпасибо за ответы.
Не будет транзакции bmt, но будут транзакции уровня бд, так?
Спрашиваю потому, что в бине отрабатывает цикл, и данные в бд пишутся нормально, даже без явного открытия/закрытия транзакций.
Поскольку кода вы нам не представили, то нам остается только телепатия.
Поскольку телепатировать мне не впервой (по работе приходилось "чинить", правда, даже спасибо не говорили, настолько им было неловко), то значит у вас не закрытый перелом а CMT.

PS даю подсказку -
1) sessionContext.getUserTransaction()
2) залезать через intercept(...)
...
Рейтинг: 0 / 0
20.03.2019, 20:19
    #39789248
cossack5
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TransactionManagementType.BEAN
grinnСпасибо за ответы.
Не будет транзакции bmt, но будут транзакции уровня бд, так?
Спрашиваю потому, что в бине отрабатывает цикл, и данные в бд пишутся нормально, даже без явного открытия/закрытия транзакций.
В БД каждый запрос будет оборачиваться в транзакцию (если Connection.autoCommit = true, что есть по умолчанию). Даже когда вы через какой-то другой клиент делаете селекты в базе без транзакций, они все равно оборачиваются в транзакции.
...
Рейтинг: 0 / 0
21.03.2019, 07:36
    #39789323
grinn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TransactionManagementType.BEAN
Спасибо еще раз всем за ответы.
К сожалению, выложить код не могу, так как промышленный.

Суть в том, что в бине в одном методе соединение идет к двум разным БД - из одной данные читаются, в другую - записываются.
При запуске вываливалась ошибка:
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.
@TransactionManagement(TransactionManagementType.BEAN)


Вот и пытаюсь понять, почему это работает?
...
Рейтинг: 0 / 0
21.03.2019, 09:50
    #39789373
Vladmir K
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TransactionManagementType.BEAN
grinnСуть в том, что в бине в одном методе соединение идет к двум разным БД
Вот она суть проблемы :) Что у вас разные пулы соединений и транзакция распределенная .

grinnРешили проблему добавлением к бину только аннотации:
Код: java
1.
@TransactionManagement(TransactionManagementType.BEAN)


ну т.е. вывели конкретную операцию из общей транзакции.
Думаю, такой же эффект приведет REQUIRES_NEW

ErrorLocal transaction already has 1 non-XA Resource: cannot add more resources.
Если у вас несколько пулов соединений настроено на сервере приложений, то только один пул может быть без поддержки XA.
Или настраивайте все соединения через драйвера XA. Тогда можно будет снова вернуть управление транзакциями Контейнеру (CMP)
...
Рейтинг: 0 / 0
21.03.2019, 09:51
    #39789374
Vladmir K
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TransactionManagementType.BEAN
grinnВот и пытаюсь понять, почему это работает?
https://stackoverflow.com/questions/44458736/transactionmanagementtype-container-vs-transactionmanagementtype-bean
...
Рейтинг: 0 / 0
21.03.2019, 11:41
    #39789477
grinn
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TransactionManagementType.BEAN
Большое спасибо, буду изучать.
...
Рейтинг: 0 / 0
21.03.2019, 12:15
    #39789499
alex55555
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
TransactionManagementType.BEAN
grinnБольшое спасибо, буду изучать.
Придётся по сути всё из стандартного для вменяемого программиста про транзакции изучать. То есть ничего не знаете.

Транзакции есть в БД, а управлять ими можно из клиента, при этом БД может быть несколько, а помимо БД могут быть и другие транзакционные сервисы. И вот по всему дереву от клиента (EJB в данном случае) через JDBC и до всех транзакционных сервисов одновременно с учётом их внутренних особенностей - это всё, вообще-то, надо понимать.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / TransactionManagementType.BEAN / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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