>
> 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
>>
>>