On 28/06/2010 23:19, Okubo, Yasushi (TSD) wrote: > On 28/06/2010 21:21, Okubo, Yasushi (TSD) wrote: >> Yes, I do. >> >> <Manager className="org.apache.catalina.ha.session.DeltaManager" >> name="webclust2" >> expireSessionsOnShutdown="false" > > Hmm. > > Can you unset the DeltaManager name attribute on all of your instances? > > > p > > > Hi Pid > > I moved expireSessionOnShutdown, but the result was the same. I did not > see any difference.
I didn't ask you to move expireSessionsOnShutdown, I asked you not to set the name attribute. /** * Return the descriptive short name of this Manager implementation. */ public String getName() { return name; } It's the only thing I can see in your config that looks weird. I'm not really sure how it could affect things, but it might, so don't set it, please. > By the way, when I shutdown the node1, it is getting action = 3 from > SimpleTpcCluster, which means logout defined in > singlesignonmessage.java. And clustersinglesignon is deregistering this > session id from other nodes. > > It looks like clustersinglesignon can send a message to other nodes even > if deltamanager.expireSessionsOnShutdown set to false. Why? I don't know. Certainly seems odd, I'll look into the expireSessionsOnShutdown attribute again tomorrow. p > Then, how can Tomcat differentiate event between shutdown and logout? > > == Catalina.out == > Jun 28, 2010 3:05:53 PM org.apache.catalina.ha.session.DeltaManager stop > FINE: Manager [/cluster] is stopping > Jun 28, 2010 3:05:53 PM org.apache.catalina.ha.session.DeltaManager stop > INFO: Manager [/cluster] expiring sessions upon shutdown > Jun 28, 2010 3:05:53 PM org.apache.catalina.authenticator.SingleSignOn > sessionEvent > FINE: Process session destroyed on > DeltaSession[EBEEECC91096DF7020488C1BDD75DF41.jvm2] > Jun 28, 2010 3:05:53 PM > org.apache.catalina.tribes.transport.nio.ParallelNioSender doLoop > FINER: ParallelNioSender - Sent msg:UniqueId{-2, -89, -62, -53, 103, > -39, 67, -1, -111, 52, -43, -84, -41, 66, 66, 31} at 2010-06-28 > 15:05:53.689 to tcp://{127, 0, 0, 1}:4010 > Jun 28, 2010 3:05:53 PM > org.apache.catalina.tribes.group.ChannelCoordinator sendMessage > FINER: ChannelCoordinator - Sent msg:UniqueId{-2, -89, -62, -53, 103, > -39, 67, -1, -111, 52, -43, -84, -41, 66, 66, 31} at 2010-06-28 > 15:05:53.69 to {tcp://{127, 0, 0, 1}:4010} > Jun 28, 2010 3:05:53 PM org.apache.catalina.tribes.group.GroupChannel > send > FINER: GroupChannel - Sent msg:UniqueId{-2, -89, -62, -53, 103, -39, 67, > -1, -111, 52, -43, -84, -41, 66, 66, 31} at 2010-06-28 15:05:53.69 to > {tcp://{127, 0, 0, 1}:4010} > Jun 28, 2010 3:05:53 PM org.apache.catalina.tribes.group.GroupChannel > send > FINER: GroupChannel - Send Message:UniqueId{-2, -89, -62, -53, 103, -39, > 67, -1, -111, 52, -43, -84, -41, 66, 66, 31} is > SingleSignOnMessage[action=3, ssoId=1C052A3927DC43EE6CAF27997F85C23B, > sessionId=null, username=null] > Jun 28, 2010 3:05:53 PM > org.apache.catalina.ha.authenticator.ClusterSingleSignOn deregister > FINE: SingleSignOnMessage Send with action 3 > Jun 28, 2010 3:05:53 PM org.apache.catalina.authenticator.SingleSignOn > deregister > FINE: Deregistering sso id '1C052A3927DC43EE6CAF27997F85C23B' > Jun 28, 2010 3:05:53 PM org.apache.catalina.authenticator.SingleSignOn > deregister > FINER: Invalidating session > DeltaSession[EBEEECC91096DF7020488C1BDD75DF41.jvm2] > Jun 28, 2010 3:05:53 PM org.apache.catalina.connector.MapperListener > handleNotification > FINE: Handle Catalina:type=Manager,path=/cluster,host=webclust2 type : > JMX.mbean.unregistered > Jun 28, 2010 3:05:53 PM org.apache.catalina.connector.MapperListener > handleNotification > FINE: Handle Catalina:type=Manager,path=/cluster,host=webclust2 type : > JMX.mbean.unregistered > Jun 28, 2010 3:05:53 PM org.apache.catalina.core.StandardContext > listenerStop > FINE: Sending application stop events > > == singlesignonmessage.java > public class SingleSignOnMessage implements ClusterMessage, Serializable > { > > public static final int ADD_SESSION = 1; > public static final int DEREGISTER_SESSION = 2; > public static final int LOGOUT_SESSION = 3; > > >> -----Original Message----- >> From: Pid [mailto:p...@pidster.com] >> Sent: Monday, June 28, 2010 1:09 PM >> To: Tomcat Users List >> Subject: Re: question for sso session replication in tomcat 6.0.26 >> >> On 28/06/2010 19:58, Okubo, Yasushi (TSD) wrote: >>> >>> Hi Pid >>> >>> I got more detailed log and it looks like clustersinglesignon is >>> deregistering sso session on other nodes. >>> >>> 0. session destroyed C0641336BF4E6B4654927AA3337EAB9F.jvm1 by > shutdown >>> [on node1] >>> >>> 1. clustersinglesignon is calling singlesignon to invalidate session >>> [ssoId=7BA0AB7AE2BFDB08CE2EBE8F42D3E89C] for node1 >>> >>> 2, but it looks like this message came back to the node1 (through >> group >>> channel/mulitcast?) >>> >>> 3. then clustersinglesignon is deregistering this session again for >>> ssoId=7BA0AB7AE2BFDB08CE2EBE8F42D3E89C. deregister method propagates >>> this message to other nodes to deregister >>> ssoId=7BA0AB7AE2BFDB08CE2EBE8F42D3E89C from all members in the same >>> cluster. >>> >>> >>> Is there any way to break this chain of actions to stop >>> clustersinglesigon invoking deregister method? >> >> Do you have ClusterManager.expireSessionsOnShutdown set to false? >> >> >> p >> >>> Jun 28, 2010 10:27:40 AM org.apache.catalina.ha.session.DeltaManager >>> stop >>> FINE: Manager [/cluster] is stopping >>> Jun 28, 2010 10:27:40 AM org.apache.catalina.ha.session.DeltaManager >>> stop >>> INFO: Manager [/cluster] expiring sessions upon shutdown >>> FINE: Process session destroyed on >>> DeltaSession[C0641336BF4E6B4654927AA3337EAB9F.jvm1] >>> Jun 28, 2010 10:27:40 AM >>> org.apache.catalina.tribes.transport.nio.NioReplicationTask >>> serviceChannel >>> FINER: About to service key:sun.nio.ch.selectionkeyi...@1bd7b222 >>> Jun 28, 2010 10:27:40 AM >>> org.apache.catalina.tribes.transport.nio.NioReplicationTask run >>> FINER: Servicing key:sun.nio.ch.selectionkeyi...@1bd7b222 >>> Jun 28, 2010 10:27:40 AM >>> org.apache.catalina.tribes.transport.nio.NioReplicationTask run >>> FINER: Draining channel:sun.nio.ch.selectionkeyi...@1bd7b222 >>> Jun 28, 2010 10:27:40 AM >>> org.apache.catalina.tribes.transport.nio.NioReplicationTask >>> registerForRead >>> FINER: Adding key for read event:sun.nio.ch.selectionkeyi...@1bd7b222 >>> Jun 28, 2010 10:27:40 AM >>> org.apache.catalina.tribes.transport.nio.NioReceiver addEvent >>> FINER: Adding event to >>> >> > selector:org.apache.catalina.tribes.transport.nio.nioreplicationtas...@5 >>> 637dde9 >>> Jun 28, 2010 10:27:40 AM >>> org.apache.catalina.tribes.transport.nio.NioReplicationTask >> drainChannel >>> FINER: NioReplicationThread - Received msg:UniqueId{48, -7, -97, > -123, >>> -116, -54, 78, -17, -115, -13, -34, 116, 39, 49, 95, 17} at > 2010-06-28 >>> 10:27:40.78 >>> Jun 28, 2010 10:27:40 AM >>> org.apache.catalina.tribes.transport.nio.NioReceiver events >>> FINER: Processing event in >>> >> > selector:org.apache.catalina.tribes.transport.nio.nioreplicationtas...@5 >>> 637dde9 >>> Jun 28, 2010 10:27:40 AM >>> org.apache.catalina.tribes.group.ChannelCoordinator messageReceived >>> FINER: ChannelCoordinator - Received msg:UniqueId{48, -7, -97, -123, >>> -116, -54, 78, -17, -115, -13, -34, 116, 39, 49, 95, 17} at > 2010-06-28 >>> 10:27:40.78 from tcp://{127, 0, 0, 1}:4010 >>> Jun 28, 2010 10:27:40 AM >>> org.apache.catalina.tribes.transport.nio.NioReplicationTask$1 run >>> FINER: Registering key for read:sun.nio.ch.selectionkeyi...@1bd7b222 >>> Jun 28, 2010 10:27:40 AM > org.apache.catalina.tribes.group.GroupChannel >>> messageReceived >>> FINER: GroupChannel - Received msg:UniqueId{48, -7, -97, -123, -116, >>> -54, 78, -17, -115, -13, -34, 116, 39, 49, 95, 17} at 2010-06-28 >>> 10:27:40.78 from tcp://{127, 0, 0, 1}:4010 >>> Jun 28, 2010 10:27:40 AM > org.apache.catalina.tribes.group.GroupChannel >>> messageReceived >>> FINER: GroupChannel - Receive Message:UniqueId{48, -7, -97, -123, >> -116, >>> -54, 78, -17, -115, -13, -34, 116, 39, 49, 95, 17} is >>> SingleSignOnMessage[action=3, ssoId=7BA0AB7AE2BFDB08CE2EBE8F42D3E89C, >>> sessionId=null, username=null] >>> Jun 28, 2010 10:27:40 AM org.apache.catalina.ha.tcp.SimpleTcpCluster >>> messageReceived >>> FINE: Assuming clocks are synched: Replication for >>> 7BA0AB7AE2BFDB08CE2EBE8F42D3E89C#-#1277746060782 took=1277746060782 >> ms. >>> Jun 28, 2010 10:27:40 AM >>> org.apache.catalina.ha.authenticator.ClusterSingleSignOnListener >>> messageReceived >>> FINE: SingleSignOnMessage Received with action 3 >>> Jun 28, 2010 10:27:40 AM >> org.apache.catalina.authenticator.SingleSignOn >>> deregister >>> FINE: Deregistering sso id '7BA0AB7AE2BFDB08CE2EBE8F42D3E89C' >>> Jun 28, 2010 10:27:40 AM >> org.apache.catalina.authenticator.SingleSignOn >>> deregister >>> FINER: Invalidating session >>> DeltaSession[C0641336BF4E6B4654927AA3337EAB9F.jvm1] >>> 2010 10:27:40 AM org.apache.catalina.tribes.group.GroupChannel >>> messageReceived >>> FINER: GroupChannel delivered[true] id:UniqueId{48, -7, -97, -123, >> -116, >>> -54, 78, -17, -115, -13, -34, 116, 39, 49, 95, 17} >>> Jun 28, 2010 10:27:40 AM >>> org.apache.catalina.tribes.transport.nio.NioReplicationTask sendAck >>> FINER: ACK sent to 55801 >>> Jun 28, 2010 10:27:40 AM >>> org.apache.catalina.tribes.transport.nio.ParallelNioSender doLoop >>> FINER: ParallelNioSender - Sent msg:UniqueId{48, -7, -97, -123, -116, >>> -54, 78, -17, -115, -13, -34, 116, 39, 49, 95, 17} at 2010-06-28 >>> 10:27:40.785 to tcp://{127, 0, 0, 1}:4010 >>> Jun 28, 2010 10:27:40 AM >>> org.apache.catalina.tribes.transport.nio.ParallelNioSender doLoop >>> FINER: ParallelNioSender - Sent msg:UniqueId{48, -7, -97, -123, -116, >>> -54, 78, -17, -115, -13, -34, 116, 39, 49, 95, 17} at 2010-06-28 >>> 10:27:40.786 to tcp://{127, 0, 0, 1}:4020 >>> Jun 28, 2010 10:27:40 AM >>> org.apache.catalina.tribes.group.ChannelCoordinator sendMessage >>> FINER: ChannelCoordinator - Sent msg:UniqueId{48, -7, -97, -123, > -116, >>> -54, 78, -17, -115, -13, -34, 116, 39, 49, 95, 17} at 2010-06-28 >>> 10:27:40.786 to {tcp://{127, 0, 0, 1}:4010, tcp://{127, 0, 0, > 1}:4020} >>> Jun 28, 2010 10:27:40 AM > org.apache.catalina.tribes.group.GroupChannel >>> send >>> FINER: GroupChannel - Sent msg:UniqueId{48, -7, -97, -123, -116, -54, >>> 78, -17, -115, -13, -34, 116, 39, 49, 95, 17} at 2010-06-28 >> 10:27:40.787 >>> to {tcp://{127, 0, 0, 1}:4010, tcp://{127, 0, 0, 1}:4020} >>> Jun 28, 2010 10:27:40 AM > org.apache.catalina.tribes.group.GroupChannel >>> send >>> FINER: GroupChannel - Send Message:UniqueId{48, -7, -97, -123, -116, >>> -54, 78, -17, -115, -13, -34, 116, 39, 49, 95, 17} is >>> SingleSignOnMessage[action=3, ssoId=7BA0AB7AE2BFDB08CE2EBE8F42D3E89C, >>> sessionId=null, username=null] >>> Jun 28, 2010 10:27:40 AM >>> org.apache.catalina.ha.authenticator.ClusterSingleSignOn deregister >>> FINE: SingleSignOnMessage Send with action 3 >>> Jun 28, 2010 10:27:40 AM >> org.apache.catalina.authenticator.SingleSignOn >>> deregister >>> FINE: Deregistering sso id '7BA0AB7AE2BFDB08CE2EBE8F42D3E89C' >>> Jun 28, 2010 10:27:40 AM org.apache.catalina.connector.MapperListener >>> handleNotification >>> FINE: Handle Catalina:type=Manager,path=/cluster,host=webclust2 type > : >>> JMX.mbean.unregistered >>> Jun 28, 2010 10:27:40 AM org.apache.catalina.connector.MapperListener >>> handleNotification >>> FINE: Handle Catalina:type=Manager,path=/cluster,host=webclust2 type > : >>> JMX.mbean.unregistered >>> Jun 28, 2010 10:27:40 AM org.apache.catalina.core.StandardContext >>> listenerStop >>> FINE: Sending application stop events >>> >>> >>> >>> /** >>> * Notifies the cluster that a single sign on session >>> * has been terminated due to a user logout, deregister >>> * the specified single sign on identifier, and invalidate >>> * any associated sessions on the local node. >>> * >>> * @param ssoId Single sign on identifier to deregister >>> */ >>> protected void deregister(String ssoId) { >>> >>> if (cluster != null) { >>> messageNumber++; >>> SingleSignOnMessage msg = >>> new SingleSignOnMessage(cluster.getLocalMember(), >>> ssoId, null); >>> msg.setAction(SingleSignOnMessage.LOGOUT_SESSION); >>> >>> cluster.sendClusterDomain(msg); >>> if (containerLog.isDebugEnabled()) >>> containerLog.debug("SingleSignOnMessage Send with action >>> " >>> + msg.getAction()); >>> } >>> >>> deregisterLocal(ssoId); >>> >>> } >>> >>> protected void deregisterLocal(String ssoId) { >>> >>> super.deregister(ssoId); >>> >>> } >>> >>> >>> -----Original Message----- >>> From: Pid [mailto:p...@pidster.com] >>> Sent: Friday, June 25, 2010 4:29 AM >>> To: Tomcat Users List >>> Subject: Re: question for sso session replication in tomcat 6.0.26 >>> >>> On 24/06/2010 21:49, Okubo, Yasushi (TSD) wrote: >>>> My bad. >>>> >>>> I added *.jsp to the filter since it contains the path to index page >>> as >>>> follows. Now, I am wondering when sso session id is created and >>>> replicated, is it when index.jsp was accessed or login.jsp was >>> accessed? >>> >>> You had added it and have now removed it? >>> >>> The normal session id is created when you access a JSP for the first >>> time, unless you have specifically configured JSPs to not create a >>> session. A session can also be created manually by a Filter or a >>> Servlet. >>> >>> The SSO session is created when the container login process completes >>> authentication successfully. >>> >>> I'm not entirely clear on when SSO replication occurs - presumably >> only >>> when there's a change like session invalidation or creation. >>> >>> >>> p >>> >>> >>>> == index.jsp == >>>> <% response.sendRedirect("/test/index.html?homepage=dyn&prop=Home"); >>> %> >>>> >>>> -----Original Message----- >>>> From: Okubo, Yasushi (TSD) >>>> Sent: Thursday, June 24, 2010 1:13 PM >>>> To: 'Tomcat Users List' >>>> Subject: RE: question for sso session replication in tomcat 6.0.26 >>>> >>>> >>>> Hi Pid >>>> >>>> I started getting the following error upon login to one node onto >>>> cluster. >>>> Could you tell me what this mean is? >>>> >>>> Yasushi >>>> >>>> >>>> Jun 24, 2010 10:51:58 AM org.apache.catalina.ha.tcp.ReplicationValve >>>> sendReplicationMessage >>>> SEVERE: Unable to perform replication request. >>>> java.lang.NullPointerException >>>> at >>>> >>> >> > org.apache.catalina.ha.tcp.ReplicationValve.isRequestWithoutSessionChang >>>> e(ReplicationValve.java:590) >>>> at >>>> >>> >> > org.apache.catalina.ha.tcp.ReplicationValve.sendSessionReplicationMessag >>>> e(ReplicationValve.java:516) >>>> at >>>> >>> >> > org.apache.catalina.ha.tcp.ReplicationValve.sendReplicationMessage(Repli >>>> cationValve.java:430) >>>> at >>>> >>> >> > org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java >>>> :363) >>>> at >>>> >>> >> > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java >>>> :102) >>>> at >>>> >>> >> > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:555 >>>> ) >>>> at >>>> >>> >> > org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java: >>>> 421) >>>> at >>>> >>> >> > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. >>>> java:109) >>>> at >>>> >>> >> > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:2 >>>> 98) >>>> at >>>> >>> >> > org.apache.coyote.ajp.AjpAprProcessor.process(AjpAprProcessor.java:427) >>>> at >>>> >>> >> > org.apache.coyote.ajp.AjpAprProtocol$AjpConnectionHandler.process(AjpApr >>>> Protocol.java:384) >>>> at >>>> >>> >> > org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555) >>>> at java.lang.Thread.run(Thread.java:619) >>>> >>>> >>> >>> >> >> >> > > >
signature.asc
Description: OpenPGP digital signature