5.2.1 セッションフェイルオーバ機能を利用する利点
HttpSessionオブジェクトは,J2EEサーバのメモリ上で保持されています。J2EEサーバで障害が発生すると,HttpSessionオブジェクトは失われます。複数のJ2EEサーバで構成されているシステムの場合に,一つのJ2EEサーバで障害が発生すると,リクエストはほかのJ2EEサーバに転送されます。しかし,HttpSessionオブジェクトが失われるため,HttpSessionオブジェクトに登録された情報(セッション情報)は引き継がれません。このため,リクエストが転送されたJ2EEサーバ上のJ2EEアプリケーションでは,新規のセッションとして扱うことになります。例えば,ユーザ認証処理後の画面で障害が発生すると,再ログインが必要になります。
セッションフェイルオーバ機能を使用すると,セッション情報を管理し,J2EEサーバで障害が発生した場合には,管理しているセッション情報をほかのJ2EEサーバに引き渡せます。このため,J2EEサーバで障害が発生し,ほかのJ2EEサーバにリクエストが転送された場合でも,障害発生前の状態で業務を続行できます。
また,統合ユーザ管理を使用している場合でも,セッションフェイルオーバ機能を使用してログイン状態を別のJ2EEサーバに引き継げます。
セッションフェイルオーバ機能を使用しない場合と使用した場合の処理の流れを次の図に示します。
セッションフェイルオーバ機能を使用していないときにサーバに障害が発生すると,セッション情報が失われるため,再ログインが必要になります。
セッションフェイルオーバ機能を使用すると,セッション情報がサーバ間で引き継がれるため,ブラウザでのユーザの操作では,サーバの障害発生に気づくことなく,処理を続行できます。