Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / EJB - в одном методе работать с двумя транзакциями / 10 сообщений из 10, страница 1 из 1
21.10.2009, 15:29:45
    #36264656
GKS_Samara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB - в одном методе работать с двумя транзакциями
Добрый день!

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

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

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

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
21.10.2009, 16:15:36
    #36264811
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB - в одном методе работать с двумя транзакциями
через UserTransaction
...
Рейтинг: 0 / 0
21.10.2009, 16:31:46
    #36264858
GKS_Samara
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB - в одном методе работать с двумя транзакциями
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
21.10.2009, 16:40:16
    #36264906
zalexaka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
EJB - в одном методе работать с двумя транзакциями
GKS_Samara
Как-то ж надо сказать ещё?

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

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

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

> @TransactionManagement(TransactionManagementType.BEAN)

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

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

> @TransactionManagement(TransactionManagementType.BEAN)

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

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


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

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

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


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