2.17.2 非同期呼び出しでのトランザクションの扱い

Session Beanの非同期呼び出しでは,次のトランザクション属性だけが指定できます。

ただし,呼び出し元であるクライアントのトランザクションコンテキストは,非同期メソッドでは伝播されません。アプリケーション開発者は,伝播されたトランザクションコンテキストがないものとして扱う必要があります。例えば,Required属性が非同期メソッドに定義されていても,EJBコンテナではRequiresNew属性を指定した場合と同様に処理されます。

クライアントで指定した非同期メソッドでのトランザクション属性の指定と対応するトランザクションを次の表に示します。

表2-57 クライアントで指定した非同期メソッドでのトランザクション属性の指定と対応するトランザクション

メソッドに指定したトランザクション属性クライアントのトランザクション非同期メソッドに関連づくトランザクション
NOT_SUPPORTEDなしなし
T1なし
REQUIREDなしT2
T1T2
REQUIRES_NEWなしT2
T1T2
SUPPORTSなしなし
T1なし
NEVERなしなし
T1なし
MANDATORYなしエラー
T1エラー
(凡例)
なし:トランザクションの指定がない,またはトランザクションがない
T1:呼び出し元のクライアントが設定したトランザクション
T2:EJBコンテナによって開始された新しいトランザクション