EJB Singleton - «Транзакция не активна» после завершения потока - PullRequest
0 голосов
/ 01 марта 2012

У меня следующий случай:

enter image description here

Когда асинхронная обработка потока завершается, в строке 15 выдается исключение со следующим сообщением: Транзакции не активны.

Обратите внимание, что я установил время ожидания транзакции, потому что ошибка возникает только после нескольких минут выполнения метода "doAnything ()". Когда выполнение занимает одну или две минуты, ошибка не возникает. Однако установка времени ожидания не сработала.

Есть идеи?

Спасибо.

1 Ответ

0 голосов
/ 02 марта 2012

Этот бин недопустим - вы не можете начать новый поток. Это происходит позади контейнера, и вы теряете управление транзакциями, управление безопасностью и многое другое.

См. Этот ответ для получения подробной информации о , как распространение транзакций работает под прикрытием

См. Этот ответ, чтобы узнать, как использовать @Asynchronous вместо запуска собственных потоков

Обратите внимание, что даже с @Asynchronous вы не можете иметь транзакцию, которая охватывает несколько потоков. Там нет TransactionManager s, которые могли бы поддержать его, и поэтому спецификации не позволяют это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...