Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)

[目次][用語][索引][前へ][次へ]

2.7.1 セッション情報を管理するオブジェクト

ここでは,セッション情報の管理に使用するHttpSessionオブジェクトについて説明します。

<この項の構成>
(1) HttpSessionオブジェクトの管理方法
(2) HttpSessionオブジェクトの保存期間

(1) HttpSessionオブジェクトの管理方法

セッション情報は,Servlet APIで規定されているHttpSessionオブジェクトによって管理される情報です。

セッション情報の管理が開始されるのは,次の時点です。

セッション情報の管理が開始されたあとで,同一のWebアプリケーション内のサーブレットに対して,同じブラウザプロセスからリクエストが送信されると,管理されている内容のHttpSessionオブジェクトがサーブレットに渡されるようになります。

ただし,実際にサーブレットに渡されるHttpSessionオブジェクトのインスタンスは,リクエスト単位に異なります。つまり,同一セッションに属する一連のリクエストでは,内容が同じでインスタンスが異なるHttpSessionオブジェクトが渡される場合があります。

このため,HttpSessionオブジェクトに対する操作では,次の点に留意してください。

(2) HttpSessionオブジェクトの保存期間

HttpSessionオブジェクトは単一のJavaVM内にだけ保存されています。このため,サーブレットエンジンとして動作しているJavaVMプロセス(J2EEサーバ)に障害が発生した場合には,HttpSessionオブジェクトが保持しているセッション情報は失われます。

また,セッション情報は,正常・異常に関係なくJ2EEサーバが終了すると失われます。

J2EEサーバが終了したあとにもセッション情報を保持しておきたい場合は,アプリケーションサーバの機能であるセッションフェイルオーバ機能を使用してください。セッションフェイルオーバ機能については,マニュアル「アプリケーションサーバ 機能解説 拡張編」の「5. J2EEサーバ間のセッション情報の引き継ぎ」を参照してください。