Hi! We are running Tomcat 7.0.68 with SimpleTcpCluster with two nodes on different hosts.
server.xml: [..] <Engine [..]> <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" /> [..] </Engine> [..] Everything works fine, except the messages below in catalina.out. The problem seems to occur, if a session is modified and invalidated during the same request (which is quite common imho). The invalidation is replicated faster than the attribute deltas, so the second node processes the invalidation and cannot handle the session-attribute modification afterwards. It would be no problem to forget about the modifications, because the session is invalid. Just the reported exception is quite misleading and the not really helpful for monitoring the logs. Any suggestions? Did we miss something? Thanks in advance, Knut --- catalina.out --- May 13, 2016 7:31:14 PM org.apache.catalina.ha.session.DeltaManager messageReceived FINE: Manager [localhost#/xxx]: Received SessionMessage of type=(SESSION-EXPIRED) from [org.apache.catalina.tribes.membership.MemberImpl[tcp://{10, x, x, x}:4000,{10, x, x, x},4000, alive=943161, securePort=-1, UDP Port=-1, id={25 ... -60 }, payload={}, command={}, domain={}, ]] May 13, 2016 7:31:14 PM org.apache.catalina.ha.session.DeltaManager handleSESSION_EXPIRED FINE: Manager [localhost#/xxx]: received session [012F517D98B33DC5EB3F8CD488558BED] expired. May 13, 2016 7:31:14 PM org.apache.catalina.ha.tcp.SimpleTcpCluster messageReceived FINE: Assuming clocks are synched: Replication for E43557F686529DC080B27BBB8FF52E6E-1463160674477 took=1 ms. May 13, 2016 7:31:14 PM org.apache.catalina.ha.session.DeltaManager messageReceived FINE: Manager [localhost#/xxx]: Received SessionMessage of type=(SESSION-MODIFIED) from [org.apache.catalina.tribes.membership.MemberImpl[tcp://{10, x, x, x}:4000,{10, x, x, x},4000, alive=943161, securePort=-1, UDP Port=-1, id={25 ... -60 }, payload={}, command={}, domain={}, ]] May 13, 2016 7:31:14 PM org.apache.catalina.ha.session.DeltaManager handleSESSION_CREATED FINE: Manager [localhost#/xxx]: received session [E43557F686529DC080B27BBB8FF52E6E] created. May 13, 2016 7:31:14 PM org.apache.catalina.ha.session.DeltaRequest execute FINER: Session.setAttribute('xxx', 'yyy') May 13, 2016 7:31:14 PM org.apache.catalina.ha.session.DeltaManager messageReceived SEVERE: Manager [localhost#/xxx]: Unable to receive message through TCP channel java.lang.IllegalStateException: setAttribute: Session [012F517D98B33DC5EB3F8CD488558BED] has already been invalidated at org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1447) at org.apache.catalina.ha.session.DeltaSession.setAttribute(DeltaSession.java:697) at org.apache.catalina.ha.session.DeltaRequest.execute(DeltaRequest.java:179) at org.apache.catalina.ha.session.DeltaManager.handleSESSION_DELTA(DeltaManager.java:1221) at org.apache.catalina.ha.session.DeltaManager.messageReceived(DeltaManager.java:1167) at org.apache.catalina.ha.session.DeltaManager.messageDataReceived(DeltaManager.java:918) at org.apache.catalina.ha.session.ClusterSessionListener.messageReceived(ClusterSessionListener.java:91) at org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpCluster.java:937) at org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpCluster.java:918) at org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:278) at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:82) at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:82) at org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector.java:117) at org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:82) at org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.java:252) at org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:287) at org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTask.java:210) at org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:99) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) --- --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org