2.17.2 非同期呼び出しでのトランザクションの扱い
Session Beanの非同期呼び出しでは,次のトランザクション属性だけが指定できます。
-
Required属性
-
RequiresNew属性
-
NotSupported属性
ただし,呼び出し元であるクライアントのトランザクションコンテキストは,非同期メソッドでは伝播されません。アプリケーション開発者は,伝播されたトランザクションコンテキストがないものとして扱う必要があります。例えば,Required属性が非同期メソッドに定義されていても,EJBコンテナではRequiresNew属性を指定した場合と同様に処理されます。
クライアントで指定した非同期メソッドでのトランザクション属性の指定と対応するトランザクションを次の表に示します。
メソッドに指定したトランザクション属性 |
クライアントのトランザクション |
非同期メソッドに関連づくトランザクション |
---|---|---|
NOT_SUPPORTED |
なし |
なし |
T1 |
なし |
|
REQUIRED |
なし |
T2 |
T1 |
T2 |
|
REQUIRES_NEW |
なし |
T2 |
T1 |
T2 |
|
SUPPORTS |
なし |
なし |
T1 |
なし |
|
NEVER |
なし |
なし |
T1 |
なし |
|
MANDATORY |
なし |
エラー |
T1 |
エラー |