Tomcatの会話管理


Tomcatのセッション管理(Session Manger)Manager MangerオブジェクトはHTTPセッション管理を実現するための機能です.Tomcat 6には5種類のMangerの実装があります.        1.StanddardManager(標準セッションマネージャ)      Tomcatのデフォルトセッションマネージャは、非クラスタ環境において単一の動作状態にあるTomcatインスタンスセッションを管理するために使用される.Tomcatがオフになると、これらのセッションに関するデータはディスク上のSESSION.serというファイルに書き込まれ、Tomcatが次の起動時にこのファイルを読みます.       デフォルトでは、Tomcatが正常に閉じられている時だけ、完全なユーザセッション情報を保存します.       デフォルトでは$CATALINE_に保存します.HOME/work/Catalina///下のSESSIONS.serファイルには       カスタム仮想ホストならば$CATALINE_に保存します.HOME/work/Catalina//_/下のSESSIONS.serファイル中                   

  
  
  
  
  1. <Manager className="org.apache.catalina.session.StandardManager" 
  2.            maxInactiveInterval="7200"/> 
     maxActive Sessions:最大許容されるアクティブセッションの数は、デフォルトでは-1であり、限定されないことを表します.     maxInactiveInterval:非アクティブセッションがタイムアウトした場合は、デフォルトは60 sです.     セッションファイルの保存ディレクトリ                        2.PersistentManager(持続セッションマネージャ)      セッションデータを永続記憶に保存し、サーバが予期しない停止後に再起動するときにこれらのセッション情報を再読み込みすることができます.耐久セッションマネージャは、セッションをファイルストアまたはJDBCストレージに保存することができます.      一つのセッションが長い間空き状態にあると、swapセッションオブジェクトに書き込まれます.これはメモリリソースが比較的きついアプリケーション環境にとって有用です.      各ユーザのセッション(各要求)を個別のファイルに保存することができます.セッション                          FileStore                            ファイル記憶ベース          JDBCStote(JAVAデータベースシステム接続)        --> RDBMSに保存します.3.DeltaManager      Tomcatクラスタのためのセッションマネージャは、セッションデータをクラスタ内の他のノードに同期させることによってセッションコピーを実現する.このような実装は、すべてのセッションの変更をクラスタ内の各ノードに同期させることができ、クラスタ環境において最も多く使用される実施形態でもある.4.Backup Manager      Tomcatクラスタに対するセッションマネージャは、DeltaManagerとは異なり、あるノードセッションの変更は、全てのノードではなくクラスタ内の別のノードに同期させるだけである.        5.SimpleTcpReplicationManager       Tomcat 4で使用したバージョンの持続セッションマネージャ(PersistentManager)    ファイルに保存する例:

  
  
  
  
  1. <Manager className="org.apache.catalina.session.PersistentManager" 
  2.     saveOnRestart="true"
  3.     <Store className="org.apache.catalina.session.FileStore" 
  4.         directory="/data/tomcat-sessions"/> 
  5. </Manager> 
各ユーザのセッションはdirectoryによって指定されたディレクトリのファイルに保存されます.ファイル名は<session_id>.sessionで、バックグラウンドスレッドを通して、一定時間ごとに(checkIntervalパラメータ定義、デフォルトは60秒)のタイムアウトセッションをチェックします. 
(間違いや足りないところがあれば、よろしくお願いします.)