|
|
|
JavaEE Управление транзакциями в запутанном случае
|
|||
|---|---|---|---|
|
#18+
Добрый день! Есть JBoss 6.1, в нём JEE-6 приложение. Есть _НЕ_ JTA источник данных. Используется в логин-модуле Код: sql 1. 2. 3. 4. 5. Надо прочитать объект из БД. Использую код Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Если в этот код попадаем из EJB-вызова с клиента- всё хорошо. А если попадаем сюда из @Timeout, потом через получение контекста аутентификации попадаю в мой код, то сначала на commit() получаю ругань ERROR [JDBCTransaction ] JDBC commit failed: java.sql.SQLException: You cannot commit during a managed transaction! а потом на то, что не закрыл транзакцию INFO [CachedConnectionManager ] Closing a connection for you. Please close them yourself: org.jboss.resource.adapter.jdbc.jdk6.WrappedConnectionJDK6@1fe63bb: java.lang.Throwable: STACKTRACE Объясните мне, как такое может быть- сначала ругают, что закрываю транзакцию, а потом- что не закрываю :) Причём если удаляю em.getTransaction().begin(); и em.getTransaction().commit(); то остаётся только ошибка "не закрыл..." -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2012, 09:36:12 |
|
||
|
JavaEE Управление транзакциями в запутанном случае
|
|||
|---|---|---|---|
|
#18+
А как в jboss датасорс настроен, тот, что в java:/jdbc/Common? Если пишет "You cannot commit during a managed transaction!", то похоже что транзакцию уже начал контейнер, то работы с em. Я jboss давно не видел, но в доке написано что датасорсы бывают no-tx-, local-tx- и xa-. Для описанного случая я бы no-tx- выбрал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.05.2012, 21:49:26 |
|
||
|
JavaEE Управление транзакциями в запутанном случае
|
|||
|---|---|---|---|
|
#18+
Добрый день, marx_freedom! > А как в jboss датасорс настроен, тот, что в java:/jdbc/Common? Да обычный- он у меня везде. > Если пишет "You cannot commit during a managed transaction!", то похоже > что транзакцию уже начал контейнер, то работы с em. Так вот интересно, что если не завершать- то ошибка "что ж ты транзакции кидаешь" :) > Я jboss давно не > видел, но в доке написано что датасорсы бывают no-tx-, local-tx- и xa-. > Для описанного случая я бы no-tx- выбрал. transaction-type="RESOURCE_LOCAL" - это оно и есть. -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 08:34:00 |
|
||
|
JavaEE Управление транзакциями в запутанном случае
|
|||
|---|---|---|---|
|
#18+
GKS_Samara> А как в jboss датасорс настроен, тот, что в java:/jdbc/Common? Да обычный- он у меня везде. Ну вот "обычный" - это какой? =) Попробуй no-tx-datasource, именно датасорс, а не настройки persistence unit. Мне кажется что ошибки "не закрыл" мониторятся на другом уровне - их кидает CachedConnectionManager и ему все равно, кто (какой код) закрывает коннекшен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 11:03:04 |
|
||
|
JavaEE Управление транзакциями в запутанном случае
|
|||
|---|---|---|---|
|
#18+
Добрый день, marx_freedom! >>> А как в jboss датасорс настроен, тот, что в java:/jdbc/Common? >> Да обычный- он у меня везде. > Ну вот "обычный" - это какой? =) Попробуй no-tx-datasource, именно > датасорс, а не настройки persistence unit. Помогло, спасибо! > Мне кажется что ошибки "не закрыл" мониторятся на другом уровне - их > кидает CachedConnectionManager и ему все равно, кто (какой код) > закрывает коннекшен. Не то, чтобы понятно, но проясняется. Спасибо! -- Алексей JID: alxt@ya.ru Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 11:33:01 |
|
||
|
JavaEE Управление транзакциями в запутанном случае
|
|||
|---|---|---|---|
|
#18+
Хорошо, что помогло =) GKS_Samara> Мне кажется что ошибки "не закрыл" мониторятся на другом уровне - их > кидает CachedConnectionManager и ему все равно, кто (какой код) > закрывает коннекшен. Не то, чтобы понятно, но проясняется. Спасибо! Слово CachedConnectionManager я взял прям из текста ошибки в первом посте, в деталях реализацию jboss не копал =) Смысл в том, что в современных контейнерах управления транзакциями - одна служба, а мониторинг коннекшенов - другая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.05.2012, 17:18:55 |
|
||
|
|

start [/forum/topic.php?fid=59&fpage=289&tid=2131754]: |
0ms |
get settings: |
13ms |
get forum list: |
23ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
39ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 342ms |
| total: | 501ms |

| 0 / 0 |
