7.2. HttpSession の非活性化および活性化

7.2.1. HttpSession のパッシベーションとアクティベーション

パッシベーションとは、比較的利用されていないセッションをメモリーから削除し、永続ストレージへ保存することでメモリの使用量を制御するプロセスのことです。
アクティベーションとは、パッシベートされたデータを永続ストレージから読み出し、メモリに戻すことを言います。
パッシベーションは HTTP セッションのライフタイムで 3 回発生します。
  • コンテナが新規セッションの作成を要求する時に現在アクティブなセッションの数が設定上限を越えている場合、サーバーはセッションの一部をパッシベートして新規セッションを作成できるようにします。
  • 設定された間隔で、定期的にバックグラウンドタスクがセッションをパッシベートすべきかチェックします。
  • ある Web アプリケーションがデプロイされ、他のサーバーでアクティブなセッションのバックアップコピーが、新たにデプロイする Web アプリケーションのセッションマネージャーによって取得された場合、セッションはパッシベートされることがあります。
以下の条件を満たすとセッションはパッシベートされます。
  • セッションが設定した最大アイドル時間以上に利用されていない。
  • アクティブなセッションの数が設定上限を越えず、セッションがアイドル時間の設定下限を超えていない。
セッションは常に LRU (Least Recently Used) アルゴリズムを使ってパッシベートされます。