You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Nino Ulsamer <ni...@equitystory.de> on 2007/01/15 21:16:32 UTC

Tomcat Session Replication via Database Problem

Hello,
we have a problem replicating sessions using Tomcat.
We are using two servers which are load-balanced using Apache. We want to achieve session preservation over multiple requests of the same user (he might be forwarded to different servers for those requests).

What we tried to set up until now is database replication of the sessions using Tomcat's PersistentManager and the JDBCStore with a MySQL database. But if we request a page on one server only it takes about 10-60 seconds until the session is written to the database. Of course, the other server does not know about the session during this time and will create another session, if the second request goes to this server. Is this a known problem of the PersistentManager or might there be a misconfiguration?
The problem is actually not the replication but the delayed writing of the PersistentManager to the database.

This is what we put into server.xml:

<Context docBase="jsp-examples" path="/jsp-examples">
	<Manager  className="org.apache.catalina.session.PersistentManager" maxIdleBackup="0" maxIdleSwap="0" checkInterval="1">
		<Store className="org.apache.catalina.session.JDBCStore" 
			connectionURL="jdbc:mysql://host/db?user=user&amp;password=password"					    
			driverName="com.mysql.jdbc.Driver" 
			debug="4"
			sessionIdCol="session_id"
			sessionValidCol="valid_session"
			sessionMaxInactiveCol="max_inactive"
			sessionLastAccessedCol="last_access"
			sessionTable = "tomcat_sessions"
			sessionAppCol = "app_context"
			sessionDataCol = "session_data"
		/>
	</Manager>
</Context>

We read on Tomcat's website that the PersistentManager should be considered "experimental". Might that be the problem or can anyone suggest another solution for session replication?

Thank you for your help,
Nino Ulsamer