Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(EJBコンテナ)

[目次][用語][索引][前へ][次へ]

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

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

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

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

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

メソッドに指定したトランザクション属性 クライアントのトランザクション 非同期メソッドに関連づくトランザクション
NOT_SUPPORTED なし なし
T1 なし
REQUIRED なし T2
T1 T2
REQUIRES_NEW なし T2
T1 T2
SUPPORTS なし なし
T1 なし
NEVER なし なし
T1 なし
MANDATORY なし エラー
T1 エラー

(凡例)
なし:トランザクションの指定がない,またはトランザクションがない
T1:呼び出し元のクライアントが設定したトランザクション
T2:EJBコンテナによって開始された新しいトランザクション