2012-03-01 27 views
0

I以下のケースました:EJBシングルトンは - スレッドが終了した後、「トランザクションがアクティブでない」

スレッドの非同期処理が終了する

enter image description here

、例外がライン15でスローされますがトランザクションはアクティブではありません。

"doAnything()"メソッドを数分間実行するとエラーが発生するため、トランザクションタイムアウトを設定していることに注意してください。実行に1〜2分かかると、エラーは発生しません。ただし、タイムアウトの設定は機能しませんでした。

ありがとうございました。

+0

非同期処理にスレッドを使用する代わりに、 '@ Asynchronous' –

答えて

0

このBeanは不正です。新しいスレッドを開始することはできません。そうすることでコンテナの背後に移動し、トランザクション管理、セキュリティ管理などを失うことになります。

how transaction propagation works under the covers

の詳細については、この答えを参照してくださいも、あなたが複数のスレッドにまたがるトランザクションを持つことができない@Asynchronousで、どのようにすることができますuse @Asynchronous instead of starting your own threads

注この回答を参照してください。それをサポートすることができないので、仕様で許可されていないのはTransactionManagerです。

関連する問題