Stateful Session Beanインスタンスの無通信時間監視機能とは、Stateful Session Beanのインスタンスに対して、一定時間超過してもビジネスメソッドが実行されなかった場合、コンテナが該当のインスタンスをメモリから削除する機能です。
この機能を使用することによって、長時間使用されていない不要なBeanインスタンスが削除されるため、使用するメモリを最適化することができます。
Stateful Session Beanインスタンスの無通信時間監視機能には以下の2段階があります。
Beanインスタンスの対話状態を一時的にファイルシステムに保存(passivate)
一定時間(約600秒)を超過してもビジネスメソッドが実行されなかったBeanインスタンスはファイルシステムにpassivateされ、メモリから削除されます。passivateされた Beanに対して要求が発行されると、コンテナは対話状況をファイルシステムから読み込みBeanを回復(activate)します。コンテナは passivateとactivate処理を正常に行った場合は、メッセージを出力しません。
保存した対話状態をファイルシステムから削除
一定時間(約5400秒)を超過してBeanに対してビジネスメソッドが実行されなかった場合、コンテナが該当のインスタンス、またはpassivateによりファイルシステムに保存した対話状況を削除します。削除したBeanに対して要求が発行されると、EJB規約に記載されている例外をクライアントに通知します。JNDI から新しいStateful Session Beanの参照を取得し、対話をやり直してください。
注意
トランザクション管理種別が「Bean」でBeanインスタンスが削除された時にトランザクションが開始されている状態の場合は、コンテナがトランザクションを自動的にロールバックします。