2.17.1 Session Beanの非同期呼び出しの適用範囲
Session Beanに対して非同期呼び出しを実行した場合,EJBコンテナはSession Beanの処理を待たないで,すぐに呼び出し元であるクライアントに制御を返します。非同期呼び出しを受けたメソッドは,呼び出し元とは異なるスレッドで処理を実行します。クライアントでは,結果を待たないで次の処理を進められるため,アプリケーションのスループットを向上させられます。
非同期呼び出しができるのは,EJB 3.1に対応した,次のインタフェースまたはビューを持つSession Beanです。
-
リモートビジネスインタフェース
-
ローカルビジネスインタフェース
-
No-Interface view
非同期呼び出しは,@Asynchronousアノテーションによって実現できます。
Stateless Session BeanまたはSingleton Session Beanのすべてのpublicメソッドは,@Asynchronousアノテーションによって,非同期メソッドとして実行できます。
なお,非同期メソッドは,Stateful Session Beanのメソッドでは実装できません。これは,非同期呼び出しを実行しているときのセッションの詳細やトランザクションの状態が保持されないためです。
また,非同期呼び出しをした場合のセキュリティ情報の伝播は,同期呼び出しの場合と同じです。