tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jorge Santiago Cruz Lambert <jorge-santiago.c...@deimos-space.com>
Subject Re: Session replication question
Date Thu, 23 Dec 2010 16:27:42 GMT
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 <devlists@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-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@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

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message