10.2. HttpSession のパッシベーションとアクティベーション
10.2.1. HTTP セッションパッシベーションおよびアクティベーション
パッシベーションとは、比較的利用されていないセッションをメモリーから削除し、永続ストレージへ保存することでメモリーの使用量を制御するプロセスのことです。
アクティベーションとは、パッシベートされたデータを永続ストレージから取得し、メモリーに戻すことです。
パッシベーションは、HTTP セッションの存続期間中の 3 つの異なる時間に発生します。
- コンテナーが新規セッションの作成を要求するときに現在アクティブなセッションの数が設定上限を超えている場合、サーバーはセッションの一部をパッシベートして新規セッションのスペースを作成しようとします。
- 定期的に、設定された間隔で、バックグラウンドタスクがセッションを非アクティブ化する必要があるかどうかを確認します。
- Web アプリケーションがデプロイされ、他のサーバーでアクティブなセッションのバックアップコピーが、新たにデプロイされる Web アプリケーションのセッションマネージャーによって取得された場合、セッションはパッシベートされることがあります。
次の条件を満たす場合、セッションは非アクティブ化されます。
- セッションは、設定可能な最大アイドル時間より長く使用されていません。
- アクティブなセッションの数が設定可能な最大値を超えており、セッションが設定可能な最小アイドル時間より長く使用されていません。
セッションは常に LRU (Least Recently Used) アルゴリズムを使ってパッシベートされます。