STATEFUL Session Beanの無通信監視機能とは、STATEFUL Session BeanのEJB objectに対して、一定時間超過してもビジネスメソッドが実行されなかった場合、コンテナが該当のインスタンスと対応するEJB objectを削除する機能です。
この機能を使用することによって、ejbRemoveメソッドを発行し忘れている不要なEJB objectが削除されるため、使用するメモリの最適化できます。デフォルトは30分です。
削除されたEJB objectに対応するインスタンスに対してクライアントから要求が来た場合、コンテナはアクセスで経由するインタフェースの種類によって、以下の例外を返却します。
経由するインタフェースがRemoteインタフェースの場合
java.rmi.NoSuchObjectExceptionをクライアントへ返却します。
経由するインタフェースがLocalインタフェースの場合
javax.ejb.NoSuchObjectLocalExceptionをクライアントへ返却します。
注意
タイムアウトが発生した時、コンテナはejbRemoveメソッドを呼び出します。その時に、ejbRemoveメソッド内で例外が発生しても、EJB objectを自動的に削除します。
トランザクション管理種別が“Bean”でタイムアウトが発生した時に、コンテナはejbRemoveメソッドを呼び出し、トランザクション処理中である場合は、コンテナがトランザクションを自動的にロールバックします。