« Tomcatでフェイルオーバー | Main | Tomcatでフェイルオーバー(JDBCStore) »

2007.06.01

Tomcatでフェイルオーバー(FileStore)

 FileStoreを用いると、セッション情報をファイルに保存するようになります。なので、複数のTomcatから参照できるフォルダを保管先に指定することで、フェイルオーバーを実現することが可能となります。

 設定例としては、以下のような感じ。

<Store className="org.apache.catalina.session.FileStore"
 directory="C:/Temp/Session"
 >
</Store>

 directory属性を指定していない場合は、work/Catalina/localhost内の対応するWebアプリケーションフォルダ内にセッションファイルが格納されます。また、directory="/Temp/Session"のような感じで指定した場合、
work/Catalina/localhost/(appname)/Temp/Sessionといった感じで処理されるようです(Windows環境の場合)。
従って、複数台でファイルの共有を行う場合は、指定の仕方に注意が必要かと。

 セッション情報が保管されると、指定したフォルダ内に

961C108DE6BEFD9A14634544D5D8B8D0.Tomcat1.session

といった感じのファイル名で出力されます(jvmRoute="Tomcat1"を指定している場合)。

 なお、タイムアウトしていないのにセッションファイルが削除されることがありましたが、PersistenceManager要素のmaxIdleSwap属性の値を"-1"にすると、この現象は観察されなくなりました(ソースを調べたわけではないので、本当に関連があるのかどうかは不明ですが)。

(参考)FileStoreのJavaDoc(Tomcat5.5)

|

« Tomcatでフェイルオーバー | Main | Tomcatでフェイルオーバー(JDBCStore) »

Java」カテゴリの記事

Subversion・Trac・etc.」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack


Listed below are links to weblogs that reference Tomcatでフェイルオーバー(FileStore):

» Tomcatでフェイルオーバー(JDBCStore) [気の向くままに・・・]
 JDBCStoreは、文字通りJDBCを用いてデータベースにセッション情報の保 [Read More]

Tracked on 2007.06.02 14:45

« Tomcatでフェイルオーバー | Main | Tomcatでフェイルオーバー(JDBCStore) »