powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / EJB - в одном методе работать с двумя транзакциями
10 сообщений из 10, страница 1 из 1
EJB - в одном методе работать с двумя транзакциями
    #36264656
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Есть метод в Stateless bean'е.
Надо в нём поработать сразу с двумя EntityManager'ами.
Точнее- поработать с EntityManager'ом, а затем вызвать другой метод,
который TransactionManagementType.CONTAINER

Как это сделать проще всего?
Надо вручную управлять транзакциями? Главное, чтобы другие методы не
затронуть- там мне не хочется ручного управления транзакциями.
Можно примерчик простой?

PS: как вариант - вызвать тупой SQL на основе EntityManager (т.е.
получить интерфейс JDBC, startTransaction и т.д.).

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
EJB - в одном методе работать с двумя транзакциями
    #36264811
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
через UserTransaction
...
Рейтинг: 0 / 0
EJB - в одном методе работать с двумя транзакциями
    #36264858
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz wrote:

> через UserTransaction

Не очень понятно.
Если я в методе, который фактически использует стандартные транзакции
пытаюсь сделать
Код: plaintext
1.
2.
3.
4.
   InitialContext ctx = new InitialContext();
   UserTransaction ut = (UserTransaction) 
ctx.lookup("java:comp/UserTransaction");
   ut.begin();

То получаю
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 16 : 27 : 37 , 009  ERROR [STDERR] javax.transaction.NotSupportedException: 
BaseTransaction.checkTransactionState - 
[com.arjuna.ats.internal.jta.transaction.arjunacore.alreadyassociated] 
[com.arjuna.ats.internal.jta.transaction.arjunacore.alreadyassociated] 
thread is already associated with a transaction!
 16 : 27 : 37 , 009  ERROR [STDERR]     at 
com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.begin(BaseTransaction.java: 80 )
 16 : 27 : 37 , 009  ERROR [STDERR]     at 
com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.begin(BaseTransactionManagerDelegate.java: 65 )
 16 : 27 : 37 , 009  ERROR [STDERR]     at 
org.jboss.ejb3.tx.UserTransactionImpl.begin(UserTransactionImpl.java: 68 )
....

Как-то ж надо сказать ещё?

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
EJB - в одном методе работать с двумя транзакциями
    #36264906
zalexaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GKS_Samara
Как-то ж надо сказать ещё?

в ejb-jar.xml
Код: plaintext
1.
2.
3.
4.
5.
<session>
…
<transaction-type>Bean</transaction-type>
…
</session>
...
Рейтинг: 0 / 0
EJB - в одном методе работать с двумя транзакциями
    #36264926
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, надо propagation правильно расставить. В данном месте нельзя получить UserTransaction, так как контекст уже приявзан к транзакции контейнера.
...
Рейтинг: 0 / 0
EJB - в одном методе работать с двумя транзакциями
    #36264950
zalexaka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zalexakaGKS_Samara
Как-то ж надо сказать ещё?

в ejb-jar.xml
Код: plaintext
1.
2.
3.
4.
5.
<session>
…
<transaction-type>Bean</transaction-type>
…
</session>

ну или
Код: plaintext
@TransactionManagement(TransactionManagementType.BEAN)
...
Рейтинг: 0 / 0
EJB - в одном методе работать с двумя транзакциями
    #36265900
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zalexaka wrote:

> @TransactionManagement(TransactionManagementType.BEAN)

Получилось, в результате, вынести в отдельный Stateless бин весь код.
Получилось логично и просто, спасибо!

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
EJB - в одном методе работать с двумя транзакциями
    #38191614
serega063
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
GKS_Samarazalexaka wrote:

> @TransactionManagement(TransactionManagementType.BEAN)

Получилось, в результате, вынести в отдельный Stateless бин весь код.
Получилось логично и просто, спасибо!

--
Алексей
JID: alxt@ya.ru


Эээх примерчик бы что получилось. У меня просто такая же проблема
...
Рейтинг: 0 / 0
EJB - в одном методе работать с двумя транзакциями
    #38191640
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
serega063,

Покажите ваш код, что вы сделали и что не получилось.
...
Рейтинг: 0 / 0
EJB - в одном методе работать с двумя транзакциями
    #38191660
serega063
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

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


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