HTTP セッションの無効化
HTTP セッションは、セッション・オブジェクトの invalidate メソッドを呼び出すか、MaxInactiveInterval プロパティーを使用して特定の時間間隔を指定することにより無効化されます。
アプリケーション・コードにより明示的に無効化されるセッションは、即時に無効化されます。アプリケーション・コードにより無効化されないセッションは、セッション・マネージャーにより無効化されます。セッションの無効化は、セッションのパーシスタンス構成に関係なく行われます。
MaxInactiveInterval 値によって指定されたセッション・タイムアウトよりも長い期間アクセスされていないセッションは、無効化の候補になります。セッション・マネージャーには、X 秒ごとに実行される、無効化の対象として適格なセッションを無効化するための無効化プロセス・スレッドがあります。
セッション・マネージャーは、ある公式を使用して X の値を決定します。この値は ReaperInterval プロパティーによって指定されます。X の値は、セッション・マネージャーで指定された MaxInactiveInterval 値に基づいて計算されます。
例えば、最大非アクティブ期間が 15 分未満の場合、ReaperInterval 値は約 60 秒から 90 秒になります。最大非アクティブ期間が 15 分よりも長い場合、ReaperInterval 値は約 300 秒から 360 秒になります。
MaxInactiveInterval を超え、ReaperInterval を経過すると、セッションは無効化されます。セッションが無効化の対象として適格になった後にセッションを無効化するためには、無効化スレッドを実行する必要があります。そのため、MaxInactiveInterval と ReaperInterval の値の合計 (秒) の間はセッションが無効化されない場合があります。
MaxInactiveInterval を超えているけれども、まだ無効化スレッドによって除去されていないセッションは、そのまま使用することができます。そのセッションが要求されると、そのセッションはクライアントに返されます。
セッションを即時に無効化するか、指定した時間間隔の後に無効化するかは指定することができます。即時に無効化する場合は、アプリケーションが invalidate メソッドを呼び出す必要があります。指定した時間にセッションを無効化するには、ReaperInterval Web コンテナーのカスタム・プロパティーを秒単位で設定して、無効化スレッドの頻度を指定します。