異常発生時のセション情報の保証範囲は、以下のとおりです。
Servletコンテナ異常終了時のセションのリカバリ保証範囲
Servletコンテナが異常終了した場合であっても、Session Registry Serverにセションがバックアップされていれば、運用中のServletコンテナでそのセションをリカバリすることができます。
したがって、リカバリの保証範囲として、Session Registry Serverにセションがバックアップされたかどうかが重要なポイントとなります。
バックアップの契機は、Session Registry Client側で、Interstage管理コンソールの以下の項目で設定します。
[ワークユニット] > “ワークユニット名” > [環境設定] > [セションリカバリ設定] > [バックアップの契機]
Session Registry Clientの設定については、“9.4 Session Registry Clientの設定”を参照してください。また、Interstage管理コンソールの詳細については、Interstage管理コンソールのヘルプを参照してください。
isj2eeadminコマンドを使用して、上記の設定を行うこともできます。isj2eeadminコマンドの詳細については、リファレンスマニュアル(コマンド編)の“isj2eeadmin”を参照してください。
例
以下に例を示します。
[リクエスト終了時]指定の場合
レスポンスをクライアントに返信するごとにバックアップを行います。
このため、クライアントに返信した直後に異常終了した場合でもリカバリすることができます。
[一定間隔 5 秒ごと]指定の場合
5秒ごとにセション情報をバックアップします。IJServerが異常終了した場合、最後にバックアップされたセションの情報をリカバリすることができます。
Session Registry Server異常終了時のセションのリカバリ保証範囲
Session Registry Serverが異常終了した場合であっても、セションに格納されたデータがファイルに永続化されていれば、再度Session Registry Serverを起動したときに永続化されたファイルからそのセションをリカバリすることができます。
したがって、リカバリの保証範囲として、Session Registry Serverにおいてセションが永続化されたかどうかが重要なポイントとなります。
永続化の間隔は、Session Registry Server環境定義ファイルの定義“serialize.interval”で指定します。詳細は“Session Registry Server環境定義ファイルの設定”を参照してください。
例
以下に例を示します。
serialize.intervalに60を設定した場合
60秒ごとにセションの情報をファイルに書き出し(永続化)します。
永続化されたタイミングによりますが、異常終了時から60秒前までのセションは保証されません。
異常終了時から60秒前までにSession Registry Serverにバックアップされたセションは保証されます。
永続化について
永続化を行うことにより、信頼性は向上しますが、レスポンスが低下します。
永続化の有効・無効は、Session Registry Server環境定義ファイルの定義“session.store”で指定します。詳細は“Session Registry Server環境定義ファイルの設定”を参照してください。
以下にその動作の違いを説明します。
session.storeに“on”を設定した場合
Session Registry Serverは、セションの情報を定期的に永続化します。
予期しない障害によりSession Registry Serverがダウンした場合、永続化された情報からダウン前の最後に永続化された時点でのセションの状態を復元することが可能です。
Session Registry Serverは、Session Registry Server環境定義ファイルの“serialize.file.path”のディレクトリに、“serialize.interval”の間隔で、セションの情報を永続化します。
session.storeに“off”を設定した場合
Session Registry Serverは、セションの情報を永続化しません。
したがって、予期しない障害によりSession Registry Serverがダウンした場合、セションのデータを復元することはできません。