セッション情報のリカバリー範囲は、以下のとおりです。
Webコンテナ正常終了時のセッションのリカバリー範囲
Webコンテナを通常の操作で停止する場合、Webコンテナ停止時のセッションがセッションストアにバックアップされます。そのため、運用中のWebコンテナでそのセッションをリカバリーすることができます。
Webコンテナをasadminコマンドにより強制停止する場合も、Webコンテナ停止時のセッションがセッションストアにバックアップされますが、強制停止ではアプリケーションの終了待ちが行われないため、アプリケーションで使用中のセッションがセッションストアにバックアップされる保証はありません。
Webコンテナ異常終了時のセッションのリカバリー範囲
Webコンテナが異常終了した場合であっても、セッションストアにセッションがバックアップされていれば、運用中のWebコンテナでそのセッションをリカバリーすることができます。
したがって、リカバリーの範囲として、セッションストアにセッションがバックアップされたかどうかが重要なポイントとなります。
バックアップの契機は、セッションレプリケーションマネージャーのライフサイクルモジュールのプロパティ(backupMode)で設定します。
例
「リクエスト終了時」指定の場合
レスポンスをWebブラウザーに返信するごとにバックアップを行います。
このため、Webブラウザーに返信した直後に異常終了した場合でもリカバリーすることができます。
(アプリケーション内でレスポンスの出力ストリームをクローズした場合など、バックアップが行われないままWebコンテナが異常終了した場合はその限りではありません。)
「一定間隔 5 秒ごと」指定の場合
5秒ごとにセッション情報をバックアップします。GlassFish Serverクラスターが異常終了した場合、最後にバックアップされたセッションの情報をリカバリーすることができます。
参照
セッションレプリケーションマネージャーの設定については、「5.17.4 セッションレプリケーションマネージャーの設定」を参照してください。
セッションストアの障害発生時のセッションのリカバリー範囲
セッションストアの異常終了などの障害によりWebコンテナからセッションストアに接続できなくなった場合、Webコンテナはローカルキャッシュのセッション情報を使用してリクエスト処理を継続します。
Webコンテナからセッションストアへの接続が復旧した場合、ローカルキャッシュとセッションストアのセッション情報の同期がとられます。
参照
詳細については、「ローカルキャッシュとセッションストアの同期」を参照してください。
セッションストアの障害によりセッションストアのセッション情報が消失した場合、Webコンテナのローカルキャッシュに残っていないセッションは、リカバリーすることができません。
ただし、セッションストアにおけるデータのレプリケーション機能や永続化機能などによりセッションストア上のセッション情報を復旧できれば、セッションストアに復旧されたセッションをWebコンテナにリカバリーすることができます。
参照
セッションストアにおけるデータの復旧方法と復旧できる範囲については、セッションストアのドキュメントを参照してください。