Nov 182007
 

Session Persistenceといっても、LoadBalancerなどで設定するCookie Persistenceのハナシではありません。

Tomcatは停止時にセッション状態をファイルに保存して、起動時に読み込んでセッションを永続化するようになってます(Session Persistence)。

場合によっては便利ですが、セッションに積むインスタンスがシリアライズに対応していないとExceptionが発生したり、作りによっては都合がよくありません。

Session PersistenceはManager Componentでおこなってますので、こちらの設定で無効化することができるようになってます。
Apache Tomcat Configuration Reference – The Manager Component

手っ取り早くTomcat全体で無効化してしまうには、$CATALINA_HOME/conf/context.xmlに

<Manager pathname="" />

と書かれた部分がありますのでこちらを有効にします。デフォルトではSESSIONS.serというファイル名なのですが、それをnullにしているので保存しないようになります。

Manager Conponentでは、このほかにセッションIDの長さ(sessionIdLength)や、最大セッション数(maxActiveSessions)などを設定することができるようになってます。

なお、Managerの設定はContext単位になりますので、バーチャルホストやアプリケーション毎に設定することも可能です。
詳しくはApache Tomcat Configuration Reference – The Context Containerを。

ちなみにTomcat 4の頃からずばりsaveOnRestart="false"と設定できるPersistent Managerがあったのですが、当時はExperimentalと注意書きされていました。Tomcat 6になってもExperimentalのままなので開発止まっちゃったんですかね 😕

Sorry, the comment form is closed at this time.