We have a load balancer and several Tomcat instances.  Currently this
"cluster" uses sticky sessions, ie. the load balancer routes the
request to the Tomcat instance holding the session which belongs to the
request.  The goal is to change our configuration so that all sessions
are persisted to a shared network filesystem, thus allowing non-sticky
sessions -- ie. any tomcat instance can handle a request.

The Overview section of the Tomcat 5.5 Clustering/Session Replication HOW-TO 
(http://tomcat.apache.org/tomcat-5.5-doc/cluster-howto.html)
suggests that this configuration is possible: "1. Using session
persistence, and saving the session to a shared file system
(PersistenceManager + FileStore)".

I've tried the following Manager config:

  <Manager className="org.apache.catalina.session.PersistentManager"
       maxActiveSessions="-1"
       maxIdleBackup="0"
       maxIdleSwap="0"
       minIdleSwap="0">
    <Store className="org.apache.catalina.session.FileStore" 
directory="sessions"/>
  </Manager>

maxIdleBackup=0 because we want the session to become instantly eligible for 
persisting to the store, 
maxIdleSwap=0 to have it persisted right after last access, minIdleSwap=0 
(similarly).

With
this configuration, the session is still not persisted immediately,
instead it seems to occur a minute or so later.  If a new request for
the same session is routed by the load balancer to another Tomcat, and
the original Tomcat still hasn't persisted it to the filesystem, then
the new request will get an old copy of the session or none at all.

Have I misunderstood something here?  

Matt





---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to