セッションには、以下の4つの状態があります。
|
考え方としては、無効なセッションと有効期限が切れたセッションの扱いは同じです。いずれの状態でも、有効なセッションのコンテキストを必要とする(つまり、SessionStatusプロパティがActiveに設定されている) WEBROUTINEは実行されません。
WAMでは、SessionInvalidイベント・ハンドラーを用意することによって、無効または有効期限切れのセッションを処理できます。このハンドラーでは、別のWEBROUTINEへのTRANSFERや、無効または有効期限切れのセッションを処理する他の操作を実行できます。SessionInvalidハンドラーを用意すれば、(アプリケーションでセッション確認が必須であったとしても)すべてのWEBROUTINEの検査が必要なくなります。全てのセッション確認はWAMレベルで行われ、無効なセッションについてはSessionInvalidイベントが起動されるので、無効なセッションの処理をWAMレベルでカスタマイズできます。
SessionInvalidハンドラーを用意しない場合は、WAMの無効なセッションのための標準ページがブラウザーに返されます。
セッションの有効期限が切れても、セッション状態はただちにセッション・データベースから削除されるわけではありません。これは、ピーク時のサーバーの負荷を減らすための動作です。トランザクション・モニターは、有効期限が切れたセッション状態のクリーンアップを周期的に実行します。この周期的なクリーンアップを無効にして、ピーク時以外にクリーンアップを実行するためのスケジュールを設定することも可能です。