Hitachi

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


2.7.5 HttpSessionオブジェクト数の上限値の設定

アプリケーションサーバでは,有効となるHttpSessionオブジェクト数に,上限値を設定できます。

HttpSessionオブジェクトの上限値は,J2EEアプリケーションに含まれるWebアプリケーションの属性(プロパティ)として設定します。J2EEアプリケーションの設定については,「2.7.7 cosminexus.xmlでの定義」を参照してください。

注意事項

Webアプリケーションにセッションフェイルオーバ機能を適用している場合,次の設定にしているときは,HttpSessionオブジェクト数の上限値の設定が必要です。

  • アプリケーション開始時のネゴシエーション処理に失敗したときに,Webアプリケーションの開始処理を中止する設定(簡易構築定義ファイルのwebserver.dbsfo.negotiation.high_levelキー)

この場合,HttpSessionオブジェクト数の上限値を設定していないと,セッション情報の引き継ぎを行うWebアプリケーションの開始時にエラーとなり,Webアプリケーションを開始できません。アプリケーション開始時のネゴシエーション処理に失敗したときに,Webアプリケーションの開始処理を続行する設定にしている場合は,HttpSessionオブジェクト数の上限値の設定は任意です。

セッションフェイルオーバ機能については,マニュアル「アプリケーションサーバ 機能解説 拡張編」の「5.2 セッションフェイルオーバ機能の概要」を参照してください。

セッションフェイルオーバ機能のWebアプリケーション開始時のネゴシエーション処理については,マニュアル「アプリケーションサーバ 機能解説 拡張編」の「6.4.1 アプリケーション開始時の処理」を参照してください。

簡易構築定義ファイル,および指定するパラメタの詳細については,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」の「4.3 簡易構築定義ファイル」を参照してください。

〈この項の構成〉

(1) 上限値を設定する対象になるHttpSessionオブジェクト

上限値を設定する対象になるのは,有効なHttpSessionオブジェクトです。

有効なHttpSessionオブジェクトとは,javax.servlet.http.HttpServletRequestクラスのgetSessionメソッドで取得したHttpSessionオブジェクトのうち,次の二つの条件を満たすオブジェクトを指します。

(2) HttpSessionオブジェクト数が上限値を超えた場合の動作(例外の発生)

HttpSessionオブジェクト数の上限値を設定していると,設定した上限値を超えてHttpSessionオブジェクトを生成しようとした場合にjavax.servlet.http.HttpServletRequestクラスのgetSessionメソッドで例外が発生します。設定に応じて,次のどちらかの例外が発生します。

どちらの例外をスローするかは,J2EEアプリケーションのパラメタで設定します。J2EEアプリケーションの設定については,「2.7.8(1) J2EEサーバの設定」を参照してください。

WebコンテナでのHttpSessionオブジェクト生成は,次のタイミングで実行されます。

設定した上限値を超えてHttpSessionオブジェクトの生成処理が発生すると,次のように動作します。

(3) HttpSessionオブジェクト数が上限値を超えた場合の動作(メッセージの出力)

HttpSessionオブジェクト数の上限値を設定していると,設定した上限値を超えてHttpSessionオブジェクトを生成しようとした場合にKDJE39225-Eのメッセージがログに出力されます。

KDJE39225-Eは,HTTPセッションを使用するリクエストが実行されるたびに出力されるため,同じメッセージでログが埋まってしまうおそれがあります。同じメッセージが繰り返し出力されるのを抑止するために,KDJE39225-Eのインターバル(出力間隔)を設定できます。必要に応じて,インターバルを設定してください。このインターバルはWebアプリケーション単位に適用されます。

メッセージの出力インターバルの設定については,「2.7.8(1) J2EEサーバの設定」を参照してください。