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