4.3.4 セッション状態の保守

WAMのセッション管理の最大のメリットの1つは、有限のリソースであるサーバー・メモリーを使用しないでセッションの状態やデータを保持できるということです。WAMには、個々の要求範囲を超えてセッション単位で保持するフィールドやリストを指定できる宣言メカニズムが用意されています (これは「4.3.3 WEB_MAPの*PERSISTキーワード」に記述されています)。セッション・データとして宣言されているフィールドやリストは、データベース内で管理され、セッションの各要求ごとにサーバー・メモリーとの間で出し入れされます。このメカニズムを使用すれば、セッション状態が1つのデータベースに格納されていれば、(複数サーバー構成の)個々のアプリケーション・サーバーが同じセッション内の別の要求に対応することができるようになります。

1つのセッション内の2つの要求の間の時間は、非アクティブ・タイムアウト時間の範囲内でなければなりません。この非アクティブ・タイムアウトは要求ごとにリセットされます。このセッションのタイムアウト時間が過ぎた後に要求が出された場合は、そのセッションの有効期限が切れたと見なされるので、その状況に対応するための適切な処理をアプリケーション・レベルで実行する必要があります。例えば、無効なセッション・キーを処理するためのRDMLXのイベント・ハンドラーを記述するなどです。(イベント・ハンドラーが用意されていない場合は、汎用のエラー・ページが返されます。)

セッションの有効期限が切れても、そのセッションはただちにデータベースから削除されるわけではありません。有効期限が切れたというフラグが設定されるだけです。有効期限が切れたセッションの削除は、別の削除プロセスによって行います。このプロセスは、データベースからピーク時以外に実行できるバックグラウンド・プロセスとして構成できます。データベースのクリーンアップについては『LANSA for the Web 管理ガイド』の 「WAM セッションのクリーンアップ」を参照してください。