Hi everybody, I am using - Tomcat 6.0.18 ( but I've also tested the same scenario with Tomcat 6.0.16 and Tomcat 6.0.14 and I got the same problem); - in cluster ( two machines); - on Debian x64, 4.0. When using DeltaManager (with or without sticky sessions) the cluster works fine, but for some special installations I would like to have "useDirtyFlag='false'". I understand that "dirtyFlag" is used only with SimpleTcpReplicationManager, so I changed the server.xml and context.xml, to enable it. When starting with a single machine, everything is fine, no error message, but when having another node in cluster, the replication fails with the error listed below.
Aug 6, 2008 4:40:57 PM org.apache.catalina.ha.session.SimpleTcpReplicationManager readSession SEVERE: Failed to deserialize the session! java.lang.NullPointerException at java.util.concurrent.ConcurrentHashMap.hash(ConcurrentHashMap.java:157) at java.util.concurrent.ConcurrentHashMap.remove(ConcurrentHashMap.java:903) at org.apache.catalina.ha.session.SimpleTcpReplicationManager.readSession(Simpl eTcpReplicationManager.java:426) at org.apache.catalina.ha.session.SimpleTcpReplicationManager.messageReceived(S impleTcpReplicationManager.java:612) at org.apache.catalina.ha.session.SimpleTcpReplicationManager.messageDataReceiv ed(SimpleTcpReplicationManager.java:651) at org.apache.catalina.ha.session.ClusterSessionListener.messageReceived(Cluste rSessionListener.java:87) at org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpCluster .java:899) at org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpCluster .java:880) at org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.j ava:269) at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(Chan nelInterceptorBase.java:79) at org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageRece ived(TcpFailureDetector.java:110) I've attached server.xml and context.xml files from one machine in cluster. Analyzing the error stack trace, I've read the Tomcat source code, and I found this, in "SimpleTcpReplicationManager": 424 if (session==null) { 425 session = createSession(null,false, false); 426 sessions.remove(session.getIdInternal()); 427 } And the signature for createSession method says: protected Session createSession(String sessionId, boolean notify, boolean setId) { It seems to me that createSession is called with parameter setId= false, and then NullPointer exception is thrown at the next line, because the code tries to search the session Id that was set to Null one line above. I changed the line 425 into session = createSession(null,true, true); Now I get no NullPointerException any more, but I suppose this is not the fair solution. Is it something wrong in my cluster configuration, can I avoid the Null point in some other way, or SimpleTcpReplicationManager is no longer supported? Thanks in advance, Lia Domide
server.xml
Description: XML document
context.xml
Description: XML document
--------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]