Thanks for replying, I'm cheking the time in our machines and they are the same, but in different time zones:
Machine 1: Thu Dec 23 17:18:40 CET 2010 Machine 2: Thu Dec 23 16:18:40 UTC 2010 Do I need to change the timezone in Machine 2? I think the time is the same and ntp is running as process. On Thu, Dec 23, 2010 at 5:06 PM, Filip Hanik - Dev Lists <devli...@hanik.com > wrote: > make sure your clocks are synced across all machines, since session > expiration is time based > > Filip > > > On 12/23/2010 8:22 AM, Jorge Santiago Cruz Lambert wrote: > >> Hi! >> >> I'm not an expert on Tomcat and we purchase a load balancer service with >> two >> tomcat 6.0.29 instances in separate Ubuntu servers with JVM version >> 1.6.0_22-b04. This instances have been configured to replicate the session >> as follow: >> >> <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" >> channelSendOptions="6" channelStartOptions="3"> >> <Manager >> className="org.apache.catalina.ha.session.DeltaManager" >> expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/> >> <Channel >> className="org.apache.catalina.tribes.group.GroupChannel"> >> <Receiver >> className="org.apache.catalina.tribes.transport.nio.NioReceiver" >> address="auto" >> port="4001" >> autoBind="100" >> selectorTimeout="5000" >> maxThreads="10"/> >> <Sender >> className="org.apache.catalina.tribes.transport.ReplicationTransmitter"> >> <Transport >> >> className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/> >> </Sender> >> <Interceptor >> >> className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/> >> <Interceptor >> >> className="org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor"> >> <Member >> className="org.apache.catalina.tribes.membership.StaticMember" >> port="4000" >> securePort="-1" >> host="xxx.xxx.xxx.xxx" >> domain="tomcat-cluster" >> >> uniqueId="{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}"/> >> </Interceptor> >> <Interceptor >> >> className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/> >> </Channel> >> <Valve >> className="org.apache.catalina.ha.tcp.ReplicationValve" >> >> filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/> >> <Valve >> className="org.apache.catalina.ha.session.JvmRouteBinderValve"/> >> <ClusterListener >> >> className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/> >> <ClusterListener >> className="org.apache.catalina.ha.session.ClusterSessionListener"/> >> </Cluster> >> >> The balancer has a "sticky session" feature that makes persistent >> connections for 300s and its balancing algorithm is "least connections". >> >> The problem is when trying to connect to load balancer with a device that >> changes its IP each request, it looks like session is not replicated and >> in >> some cases we can see the session id in the manager but with empty >> attributes. >> >> We have our application distributable, sessions are Serializable and we >> tried to change as previously I read in this list, the channelSendOptions >> from 8 (Asynchronous) to 6, and in this way we stopped the SEVERE messages >> from catalina saying something like: >> >> SEVERE: Manager [localhost#]: Unable to receive message through TCP >> channel >> java.lang.IllegalStateException: setAttribute: Session already invalidated >> at >> >> org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1326) >> at >> >> org.apache.catalina.ha.session.DeltaSession.setAttribute(DeltaSession.java:594) >> at >> org.apache.catalina.ha.session.DeltaRequest.execute(DeltaRequest.java:164) >> at >> >> org.apache.catalina.ha.session.DeltaManager.handleSESSION_DELTA(DeltaManager.java:1487) >> at >> >> org.apache.catalina.ha.session.DeltaManager.messageReceived(DeltaManager.java:1437) >> at >> >> org.apache.catalina.ha.session.DeltaManager.messageDataReceived(DeltaManager.java:1171) >> at >> >> org.apache.catalina.ha.session.ClusterSessionListener.messageReceived(ClusterSessionListener.java:92) >> at >> >> org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpCluster.java:901) >> at >> >> org.apache.catalina.ha.tcp.SimpleTcpCluster.messageReceived(SimpleTcpCluster.java:882) >> at >> >> org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChannel.java:269) >> at >> >> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:79) >> at >> >> org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.messageReceived(TcpFailureDetector.java:110) >> at >> >> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:79) >> at >> >> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:79) >> at >> >> org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(ChannelInterceptorBase.java:79) >> at >> >> org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(ChannelCoordinator.java:241) >> at >> >> org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(ReceiverBase.java:225) >> at >> >> org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel(NioReplicationTask.java:188) >> at >> >> org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioReplicationTask.java:91) >> at >> >> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) >> at >> >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) >> at java.lang.Thread.run(Thread.java:662) >> >> But we have the same problem with sessions. >> >> What's wrong? >> >> Any help is appreciated. >> Thank you >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > > -- Jorge S. Cruz Lambert Telecom & Mobility DEIMOS Space SLU Ronda de Poniente, 19 - Edificio Fiteni VI, portal 2, 2ยบ 28760 Tres Cantos (Madrid) Tel: +34 91 804 93 33 Ext. 110 Fax: +34 91 806 34 51