Filip, Thanks so much for some reason taking the "<Manager " statement completely out of the context worked.
I can now see session replication occurring, which then identified some objects that were not serializable. I have fixed these and can see the session replicating correctly in the log messages. I quickly realized that I could not just run "catalina stop" as this caused the session to be deleted on both the tomcat instance that was stopping and on the remaining Tomcat instance - hence the reason I was always prompted to re-login in. So how do I trigger the "maintenance failover"? If I use the Admin console to delete the port 8009 connector (first Tomcat instance), this does not prevent JK from continuing to route traffic to this instance. I also tried using "ant stop" from the tomcat-deployer, but this results in a "HTTP Status 503 - This application is not currently available" message. I feel like I'm very close, but not quite there. Thank you - Richard Filip Hanik - Dev wrote: > you said you enabled it in your context.xml file, if so remove it > > > Filip > > ----- Original Message ----- > From: "Richard Mixon (qwest)" <[EMAIL PROTECTED]> > To: "Tomcat Users List" <[email protected]> > Cc: <> > Sent: Thursday, January 27, 2005 12:08 PM > Subject: RE: JK, Session Replication/Clustering, SSL and failover in > Tomcat 5 > > > Filip, > > Yes you did say that earlier. However I do not reference > PersistentManager anywhere in my server.xml. How is it getting enable? > Here is the clustering part if my server.xml (I can send the entire > server.xml if necessary). > > > <Cluster > className="org.apache.catalina.cluster.tcp.SimpleTcpCluster" > > managerClassName="org.apache.catalina.cluster.session.D eltaManager" > expireSessionsOnShutdown="true" > useDirtyFlag="true" > notifyListenersOnReplication="true"> > > <Membership > > className="org.apache.catalina.cluster.mcast.McastServic > e" > mcastAddr="228.0.0.4" > mcastPort="45564" > mcastFrequency="500" > mcastDropTime="3000"/> > > <Receiver > > className="org.apache.catalina.cluster.tcp.ReplicationLi stener" > tcpListenAddress="auto" > tcpListenPort="4001" > tcpSelectorTimeout="100" > tcpThreadCount="6"/> > > <Sender > > className="org.apache.catalina.cluster.tcp.ReplicationTr ansmitter" > replicationMode="pooled" > ackTimeout="15000"/> > > <Valve > className="org.apache.catalina.cluster.tcp.ReplicationValve" > > filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.ht > ml;.*\.css;.*\.txt;"/> > > <Deployer > className="org.apache.catalina.cluster.deploy.FarmWarDeployer" > tempDir="c:/jakarta-tomcat-5.5.7/temp" > deployDir="c:/jakarta-tomcat-5.5.7/webapps" > > watchDir="c:/jakarta-tomcat-5.5.7-deployer/build/w ebapp" > watchEnabled="false"/> > </Cluster> > > Thank you - Richard > > > -----Original Message----- > From: Filip Hanik - Dev [mailto:[EMAIL PROTECTED] > Sent: Thursday, January 27, 2005 10:34 AM > To: Tomcat Users List > Cc: [EMAIL PROTECTED] > Subject: Re: JK, Session Replication/Clustering, SSL and failover in > Tomcat 5 > > > As mentioned, you can't have the persistence manager, with clustering. > > > DEBUG TP-Processor3 > org.apache.catalina.cluster.session.JvmRouteBinderValve - No Cluster > DeltaManager [EMAIL PROTECTED] at > /stars > > > > ----- Original Message ----- > From: "Richard Mixon (qwest)" <[EMAIL PROTECTED]> > To: "Tomcat Users List" <[email protected]> > Sent: Thursday, January 27, 2005 10:55 AM > Subject: RE: JK, Session Replication/Clustering, SSL and failover in > Tomcat 5 > > > Filip/all, > > Thank you - with your suggestion I was able to get it configured as > follows: > > 1) After the "<Server " line in server.xml I added > <Listener > className="org.apache.catalina.cluster.session.JvmRouteSessionIDBinderLi > fecycleListener" /> > > 2) I added to the conf/context.xml this line: > <Valve > className="org.apache.catalina.cluster.session.JvmRouteBinderValve" /> > > All starts fine. But I still get prompted to logon when the failover > occurs from "srv1" to "srv2". > > Here are the Tomcat logs (I have mostly just the cluster logging > enabled. Can you see anything that is not correct? > > TOMCAT LOG - SRV1 BEGIN > DEBUG main org.apache.catalina.cluster.tcp.ReplicationTransmitter - > Setting replcation mode to pooled > DEBUG main org.apache.catalina.cluster.tcp.ReplicationValve - Loading > request > filters=.*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt; > DEBUG main org.apache.catalina.cluster.tcp.ReplicationValve - Request > filter=.*\.gif > DEBUG main org.apache.catalina.cluster.tcp.ReplicationValve - Request > filter=.*\.js > DEBUG main org.apache.catalina.cluster.tcp.ReplicationValve - Request > filter=.*\.jpg > DEBUG main org.apache.catalina.cluster.tcp.ReplicationValve - Request > filter=.*\.png > DEBUG main org.apache.catalina.cluster.tcp.ReplicationValve - Request > filter=.*\.htm > DEBUG main org.apache.catalina.cluster.tcp.ReplicationValve - Request > filter=.*\.html > DEBUG main org.apache.catalina.cluster.tcp.ReplicationValve - Request > filter=.*\.css > DEBUG main org.apache.catalina.cluster.tcp.ReplicationValve - Request > filter=.*\.txt > INFO main org.apache.catalina.cluster.tcp.SimpleTcpCluster - Cluster > is about to start > DEBUG main org.apache.catalina.cluster.tcp.SimpleTcpCluster - > Invoking addValve on StandardEngine[Catalina].StandardHost[localhost] > with class=org.apache.catalina.cluster.tcp.ReplicationValve > DEBUG main org.apache.catalina.cluster.tcp.ReplicationListener - > Starting replication listener on address:192.168.1.140 > INFO main org.apache.catalina.cluster.mcast.McastService - Sleeping > for 2000 secs to establish cluster membership > INFO main org.apache.catalina.cluster.deploy.FarmWarDeployer - > Cluster FarmWarDeployer started. > INFO main org.apache.catalina.cluster.session.JvmRouteBinderValve - > JvmRouteBinderValve started > INFO main org.apache.catalina.cluster.session.JvmRouteBinderValve - > JvmRouteBinderValve started > INFO main org.apache.catalina.cluster.session.JvmRouteBinderValve - > JvmRouteBinderValve started > INFO Cluster-MembershipReceiver > org.apache.catalina.cluster.tcp.SimpleTcpCluster - Replication member > added:org.apache.catalina.cluster.mcast.McastMember[tcp://192.168.1.140: > 4002,192.168.1.140,4002, alive=15] > DEBUG TP-Processor3 > org.apache.catalina.cluster.session.JvmRouteBinderValve - No Cluster > DeltaManager [EMAIL PROTECTED] at > /stars > INFO main org.apache.catalina.cluster.session.JvmRouteBinderValve - > JvmRouteBinderValve stopped) > INFO main org.apache.catalina.cluster.session.JvmRouteBinderValve - > JvmRouteBinderValve stopped) > INFO main org.apache.catalina.cluster.session.JvmRouteBinderValve - > JvmRouteBinderValve stopped) > INFO main org.apache.catalina.cluster.deploy.FarmWarDeployer - > Cluster FarmWarDeployer stopped. > TOMCAT LOG - SRV1 END > > TOMCAT LOG - SRV2 BEGIN > DEBUG main org.apache.catalina.cluster.tcp.ReplicationTransmitter - > Setting replcation mode to pooled > DEBUG main org.apache.catalina.cluster.tcp.ReplicationValve - Loading > request > filters=.*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt; > DEBUG main org.apache.catalina.cluster.tcp.ReplicationValve - Request > filter=.*\.gif > DEBUG main org.apache.catalina.cluster.tcp.ReplicationValve - Request > filter=.*\.js > DEBUG main org.apache.catalina.cluster.tcp.ReplicationValve - Request > filter=.*\.jpg > DEBUG main org.apache.catalina.cluster.tcp.ReplicationValve - Request > filter=.*\.png > DEBUG main org.apache.catalina.cluster.tcp.ReplicationValve - Request > filter=.*\.htm > DEBUG main org.apache.catalina.cluster.tcp.ReplicationValve - Request > filter=.*\.html > DEBUG main org.apache.catalina.cluster.tcp.ReplicationValve - Request > filter=.*\.css > DEBUG main org.apache.catalina.cluster.tcp.ReplicationValve - Request > filter=.*\.txt > INFO main org.apache.catalina.cluster.tcp.SimpleTcpCluster - Cluster > is about to start > DEBUG main org.apache.catalina.cluster.tcp.SimpleTcpCluster - > Invoking addValve on StandardEngine[Catalina].StandardHost[localhost] > with class=org.apache.catalina.cluster.tcp.ReplicationValve > DEBUG main org.apache.catalina.cluster.tcp.ReplicationListener - > Starting replication listener on address:192.168.1.140 > INFO main org.apache.catalina.cluster.mcast.McastService - Sleeping > for 2000 secs to establish cluster membership > INFO Cluster-MembershipReceiver > org.apache.catalina.cluster.tcp.SimpleTcpCluster - Replication member > added:org.apache.catalina.cluster.mcast.McastMember[tcp://192.168.1.140: > 4001,192.168.1.140,4001, alive=4046] > INFO main org.apache.catalina.cluster.deploy.FarmWarDeployer - > Cluster FarmWarDeployer started. > INFO main org.apache.catalina.cluster.session.JvmRouteBinderValve - > JvmRouteBinderValve started > INFO main org.apache.catalina.cluster.session.JvmRouteBinderValve - > JvmRouteBinderValve started > INFO main org.apache.catalina.cluster.session.JvmRouteBinderValve - > JvmRouteBinderValve started > DEBUG TP-Processor3 > org.apache.catalina.cluster.session.JvmRouteBinderValve - No Cluster > DeltaManager [EMAIL PROTECTED] at > /stars > INFO Cluster-MembershipReceiver > org.apache.catalina.cluster.tcp.SimpleTcpCluster - Received member > disappeared:org.apache.catalina.cluster.mcast.McastMember[tcp://192.168. > 1.140:4001,192.168.1.140,4001, alive=258218] > TOMCAT LOG - SRV2 END > > Thank you again - Richard > > -----Original Message----- > From: Filip Hanik - Dev [mailto:[EMAIL PROTECTED] > Sent: Thursday, January 27, 2005 9:02 AM > To: Tomcat Users List > Cc: [EMAIL PROTECTED] > Subject: Re: JK, Session Replication/Clustering, SSL and failover in > Tomcat 5 > > > > Try to configure the JvmRouteSessionIDBinderLifecycleListener like any > other Lifecycle listener, > > <Server....> > <Listener > className="o.a.c.c.s.JvmRouteSessionIDBinderLifecycleListener"/> > > .... > > > Filip > > ----- Original Message ----- > From: "Richard Mixon (qwest)" <[EMAIL PROTECTED]> > To: "Tomcat Users List" <[email protected]> > Cc: <[EMAIL PROTECTED]> > Sent: Thursday, January 27, 2005 9:37 AM > Subject: RE: JK, Session Replication/Clustering, SSL and failover in > Tomcat 5 > > > Filip, > > Thank you - that appears to be what I need. Unfortunately the only > documentation I can find is at: > > http://jakarta.apache.org/tomcat/tomcat-5.5-doc/catalina/docs/api/org/ > apache/catalina/cluster/session/JvmRouteBinderValve.html > > BEGIN-QUOTE > Valve to handle Tomcat jvmRoute takeover using mod_jk module after > node failure. After a node crashed the next request going to other > cluster > node. Now the answering from apache is slower ( make some error > handshaking. Very bad with apache at my windows.). We rewrite now the > cookie jsessionid information to the backup cluster node. After the > next response all client request goes direct to the backup node. The > change sessionid send also to all other cluster nodes. Well, now the > session stickyness work directly to the backup node and traffic don't > go back > too restarted cluster nodes! At all cluster node you must configure > the JvmRouteSessionIDBinderListener with > JvmRouteSessionIDBinderListenerLifecycle Add this Valve to your > clustered application or setup it to context default > conf/enginename/hostname/context.xml.default for all host application > > <Context> > <Valve > className="org.apache.catalina.cluster.session.JvmRouteBinderValve" /> > </Context> > > > END-QUOTE > > I put the valve statement in my conf/context.xml. But this does not > seem > to be enough. > > But where can I find information on configuring the > "JvmRouteSessionIDBinderListener with > JvmRouteSessionIDBinderListenerLifecycle"? > > Thank you - Richard Mixon > > -----Original Message----- > From: Filip Hanik - Dev [mailto:[EMAIL PROTECTED] > Sent: Thursday, January 27, 2005 7:29 AM > To: Tomcat Users List > Cc: [EMAIL PROTECTED] > Subject: Re: JK, Session Replication/Clustering, SSL and failover in > Tomcat 5 > > > yes, There is code that takes care of that scenario, I believe it was > peter who coded it. > There is a valve called JvmRouteBinderValve that peter wrote, that you > enable for your context. > It will rewrite the session id for, and broadbast it to the cluster. > > Filip > > ----- Original Message ----- > From: "Richard Mixon (qwest)" <[EMAIL PROTECTED]> > To: "Tomcat Users List" <[email protected]> > Sent: Wednesday, January 26, 2005 6:44 PM > Subject: RE: JK, Session Replication/Clustering, SSL and failover in > Tomcat 5 > > > Filip, > > Pen does not really help me out. > > My problem is JK I am pretty sure. It is appending ".srv1" to the > session. When srv1 is stopped, it detects this on the next request and > routes the request to srv2. However I notice in the JK output that it > now has ".srv2" appended to the session, which of course does not > exist, > and I get prompted to re-logon. > > Below is the debug output from JK showing the failover attempt. > > Any other suggestion? > > Thank you - Richard > > [Wed Jan 26 17:15:57 2005] [6040:2256] [debug] > map_uri_to_worker::jk_uri_worker_map.c (700): Attempting to map URI > '/stars/gridAction.do' from 1 maps > [Wed Jan 26 17:15:57 2005] [6040:2256] [debug] > map_uri_to_worker::jk_uri_worker_map.c (718): Attempting to map > context > URI '/stars/*' > [Wed Jan 26 17:15:57 2005] [6040:2256] [debug] > map_uri_to_worker::jk_uri_worker_map.c (755): Found a context match > loadbalancer -> /stars/ > [Wed Jan 26 17:15:57 2005] [6040:2256] [debug] jk_handler::mod_jk.c > (1715): Into handler jakarta-servlet worker=loadbalancer r->proxyreq=0 > [Wed Jan 26 17:15:57 2005] [6040:2256] [debug] > wc_get_worker_for_name::jk_worker.c (92): found a worker loadbalancer > [Wed Jan 26 17:15:57 2005] [6040:2256] [debug] > init_ws_service::mod_jk.c (479): agsp=443 > agsn=redfishsoftware.swamp.home hostn=redfishsoftware.swamp.home > shostn=redfishsoftware.swamp.home > cbsport=0 sport=0 claport=443 > [Wed Jan 26 17:15:57 2005] [6040:2256] [debug] service::jk_lb_worker.c > (465): service sticky_session=1 > [Wed Jan 26 17:15:57 2005] [6040:2256] [debug] > get_most_suitable_worker::jk_lb_worker.c (372): total sessionid is > EE9EF7748256B50E03C48A3F3735DE59.srv1. > [Wed Jan 26 17:15:57 2005] [6040:2256] [debug] > get_most_suitable_worker::jk_lb_worker.c (383): searching worker for > partial sessionid EE9EF7748256B50E03C48A3F3735DE59.srv1. > [Wed Jan 26 17:15:57 2005] [6040:2256] [debug] > get_suitable_worker::jk_lb_worker.c (275): searching for sticky worker > (srv1) > [Wed Jan 26 17:15:57 2005] [6040:2256] [debug] > get_suitable_worker::jk_lb_worker.c (282): found candidate worker srv1 > (0) for match with sticky (srv1) > [Wed Jan 26 17:15:57 2005] [6040:2256] [debug] > get_suitable_worker::jk_lb_worker.c (290): found candidate worker srv1 > (0) with previous load 100 in search with sticky (srv1) > [Wed Jan 26 17:15:57 2005] [6040:2256] [debug] > get_suitable_worker::jk_lb_worker.c (343): found worker srv1 with new > load 100 in search with sticky (srv1) > [Wed Jan 26 17:15:57 2005] [6040:2256] [debug] > ajp_get_endpoint::jk_ajp_common.c (2016): time elapsed since last > request = 76 seconds > [Wed Jan 26 17:15:57 2005] [6040:2256] [debug] service::jk_lb_worker.c > (482): service worker=srv1 jvm_route=srv1 rc=1 > [Wed Jan 26 17:15:57 2005] [6040:2256] [debug] > ajp_marshal_into_msgb::jk_ajp_common.c (551): ajp marshaling done > [Wed Jan 26 17:15:57 2005] [6040:2256] [debug] > ajp_service::jk_ajp_common.c (1594): processing with 3 retries > [Wed Jan 26 17:15:57 2005] [6040:2256] [debug] > ajp_connection_tcp_send_message::jk_ajp_common.c (883): sending to > ajp13 pos=4 len=611 max=8192 > [Wed Jan 26 17:15:57 2005] [6040:2256] [error] > ajp_connection_tcp_send_message::jk_ajp_common.c (902): sendfull > returned -3 with errno=54 > [Wed Jan 26 17:15:57 2005] [6040:2256] [error] > ajp_send_request::jk_ajp_common.c (1158): Error sending request try > another pooled connection > [Wed Jan 26 17:15:57 2005] [6040:2256] [debug] > jk_open_socket::jk_connect.c (159): try to connect socket = 700 to > 127.0.0.1:8009 > [Wed Jan 26 17:15:58 2005] [6040:2256] [debug] > jk_open_socket::jk_connect.c (177): after connect ret = -1 > [Wed Jan 26 17:15:58 2005] [6040:2256] [info] > jk_open_socket::jk_connect.c (183): connect() failed errno = 61 > [Wed Jan 26 17:15:58 2005] [6040:2256] [info] > ajp_connect_to_endpoint::jk_ajp_common.c (862): Failed connecting to > tomcat. Tomcat is probably not started or is listening on the wrong > host/port (127.0.0.1:8009). Failed errno = 61 > [Wed Jan 26 17:15:58 2005] [6040:2256] [info] > ajp_send_request::jk_ajp_common.c (1186): Error connecting to the > Tomcat process. > [Wed Jan 26 17:15:58 2005] [6040:2256] [info] > ajp_service::jk_ajp_common.c (1665): Sending request to tomcat failed, > recoverable operation attempt=0 > [Wed Jan 26 17:15:58 2005] [6040:2256] [debug] > jk_open_socket::jk_connect.c (159): try to connect socket = 700 to > 127.0.0.1:8009 > [Wed Jan 26 17:15:59 2005] [6040:2256] [debug] > jk_open_socket::jk_connect.c (177): after connect ret = -1 > [Wed Jan 26 17:15:59 2005] [6040:2256] [info] > jk_open_socket::jk_connect.c (183): connect() failed errno = 61 > [Wed Jan 26 17:15:59 2005] [6040:2256] [info] > ajp_connect_to_endpoint::jk_ajp_common.c (862): Failed connecting to > tomcat. Tomcat is probably not started or is listening on the wrong > host/port (127.0.0.1:8009). Failed errno = 61 > [Wed Jan 26 17:15:59 2005] [6040:2256] [info] > ajp_send_request::jk_ajp_common.c (1186): Error connecting to the > Tomcat process. > [Wed Jan 26 17:15:59 2005] [6040:2256] [info] > ajp_service::jk_ajp_common.c (1665): Sending request to tomcat failed, > recoverable operation attempt=1 > [Wed Jan 26 17:15:59 2005] [6040:2256] [debug] > jk_open_socket::jk_connect.c (159): try to connect socket = 700 to > 127.0.0.1:8009 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > jk_open_socket::jk_connect.c (177): after connect ret = -1 > [Wed Jan 26 17:16:00 2005] [6040:2256] [info] > jk_open_socket::jk_connect.c (183): connect() failed errno = 61 > [Wed Jan 26 17:16:00 2005] [6040:2256] [info] > ajp_connect_to_endpoint::jk_ajp_common.c (862): Failed connecting to > tomcat. Tomcat is probably not started or is listening on the wrong > host/port (127.0.0.1:8009). Failed errno = 61 > [Wed Jan 26 17:16:00 2005] [6040:2256] [info] > ajp_send_request::jk_ajp_common.c (1186): Error connecting to the > Tomcat process. > [Wed Jan 26 17:16:00 2005] [6040:2256] [info] > ajp_service::jk_ajp_common.c (1665): Sending request to tomcat failed, > recoverable operation attempt=2 > [Wed Jan 26 17:16:00 2005] [6040:2256] [error] > ajp_service::jk_ajp_common.c (1673): Error connecting to tomcat. > Tomcat > is probably not started or is listening on the wrong port. worker=srv1 > failed errno = 61 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_done::jk_ajp_common.c (1955): done with connection -1 for worker > srv1 [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > service::jk_lb_worker.c (522): recoverable error... will try to > recover on other host [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > get_most_suitable_worker::jk_lb_worker.c (372): total sessionid is > EE9EF7748256B50E03C48A3F3735DE59.srv1. > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > get_most_suitable_worker::jk_lb_worker.c (383): searching worker for > partial sessionid EE9EF7748256B50E03C48A3F3735DE59.srv1. > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > get_suitable_worker::jk_lb_worker.c (275): searching for sticky worker > (srv1) > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > get_suitable_worker::jk_lb_worker.c (282): found candidate worker srv1 > (0) for match with sticky (srv1) > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > get_suitable_worker::jk_lb_worker.c (290): found candidate worker srv1 > (0) with previous load 100 in search with sticky (srv1) > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > get_suitable_worker::jk_lb_worker.c (300): worker candidate srv1 (0) > is > in error state - will not yet recover (0 < 60) > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > get_suitable_worker::jk_lb_worker.c (350): found no sticky (srv1) > worker [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > get_most_suitable_worker::jk_lb_worker.c (403): found domain unknown > in route srv1 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > get_suitable_worker::jk_lb_worker.c (275): searching for sticky domain > worker (unknown) > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > get_suitable_worker::jk_lb_worker.c (282): found candidate worker srv1 > (0) for match with sticky domain (unknown) > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > get_suitable_worker::jk_lb_worker.c (290): found candidate worker srv1 > (0) with previous load 100 in search with sticky domain (unknown) > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > get_suitable_worker::jk_lb_worker.c (300): worker candidate srv1 (0) > is > in error state - will not yet recover (0 < 60) > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > get_suitable_worker::jk_lb_worker.c (282): found candidate worker srv2 > (1) for match with sticky domain (unknown) > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > get_suitable_worker::jk_lb_worker.c (290): found candidate worker srv2 > (1) with previous load 100 in search with sticky domain (unknown) > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > get_suitable_worker::jk_lb_worker.c (314): new maximal worker srv2 (1) > with previous load 200 in search with sticky domain (unknown) > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > get_suitable_worker::jk_lb_worker.c (343): found worker srv2 with new > load 100 in search with sticky domain (unknown) > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_get_endpoint::jk_ajp_common.c (2016): time elapsed since last > request = 29 seconds > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] service::jk_lb_worker.c > (482): service worker=srv2 jvm_route=srv2 rc=1 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_marshal_into_msgb::jk_ajp_common.c (551): ajp marshaling done > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_service::jk_ajp_common.c (1594): processing with 3 retries > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_connection_tcp_send_message::jk_ajp_common.c (883): sending to > ajp13 pos=4 len=611 max=8192 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_send_request::jk_ajp_common.c (1199): request body to send 64587 - > request body to resend 0 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_connection_tcp_send_message::jk_ajp_common.c (883): sending to > ajp13 pos=4 len=8192 max=8192 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_connection_tcp_get_message::jk_ajp_common.c (1007): received from > ajp13 pos=0 len=3 max=8192 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_connection_tcp_send_message::jk_ajp_common.c (883): sending to > ajp13 pos=4 len=8192 max=8192 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_connection_tcp_get_message::jk_ajp_common.c (1007): received from > ajp13 pos=0 len=3 max=8192 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_connection_tcp_send_message::jk_ajp_common.c (883): sending to > ajp13 pos=4 len=8192 max=8192 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_connection_tcp_get_message::jk_ajp_common.c (1007): received from > ajp13 pos=0 len=3 max=8192 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_connection_tcp_send_message::jk_ajp_common.c (883): sending to > ajp13 pos=4 len=8192 max=8192 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_connection_tcp_get_message::jk_ajp_common.c (1007): received from > ajp13 pos=0 len=3 max=8192 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_connection_tcp_send_message::jk_ajp_common.c (883): sending to > ajp13 pos=4 len=8192 max=8192 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_connection_tcp_get_message::jk_ajp_common.c (1007): received from > ajp13 pos=0 len=3 max=8192 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_connection_tcp_send_message::jk_ajp_common.c (883): sending to > ajp13 pos=4 len=8192 max=8192 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_connection_tcp_get_message::jk_ajp_common.c (1007): received from > ajp13 pos=0 len=3 max=8192 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_connection_tcp_send_message::jk_ajp_common.c (883): sending to > ajp13 pos=4 len=8192 max=8192 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_connection_tcp_get_message::jk_ajp_common.c (1007): received from > ajp13 pos=0 len=3 max=8192 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_connection_tcp_send_message::jk_ajp_common.c (883): sending to > ajp13 pos=4 len=7291 max=8192 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_connection_tcp_get_message::jk_ajp_common.c (1007): received from > ajp13 pos=0 len=141 max=8192 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_unmarshal_response::jk_ajp_common.c (606): status = 200 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_unmarshal_response::jk_ajp_common.c (613): Number of headers is = > 2 [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_unmarshal_response::jk_ajp_common.c (669): Header[0] [Set-Cookie] > = [JSESSIONID=9FF5A5ED4466F1EE906856287DF2EF8F.srv2; Path=/stars; > Secure] [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_unmarshal_response::jk_ajp_common.c (669): Header[1] > [Content-Type] = [text/html;charset=ISO-8859-1] > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_connection_tcp_get_message::jk_ajp_common.c (1007): received from > ajp13 pos=0 len=25 max=8192 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] ws_write::mod_jk.c > (376): writing 21 (21) out of 21 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_connection_tcp_get_message::jk_ajp_common.c (1007): received from > ajp13 pos=0 len=6585 max=8192 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] ws_write::mod_jk.c > (376): writing 4096 (4096) out of 6581 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] ws_write::mod_jk.c > (376): writing 2485 (2485) out of 2485 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_connection_tcp_get_message::jk_ajp_common.c (1007): received from > ajp13 pos=0 len=161 max=8192 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] ws_write::mod_jk.c > (376): writing 157 (157) out of 157 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_connection_tcp_get_message::jk_ajp_common.c (1007): received from > ajp13 pos=0 len=5887 max=8192 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] ws_write::mod_jk.c > (376): writing 4096 (4096) out of 5883 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] ws_write::mod_jk.c > (376): writing 1787 (1787) out of 1787 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_connection_tcp_get_message::jk_ajp_common.c (1007): received from > ajp13 pos=0 len=2 max=8192 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] > ajp_done::jk_ajp_common.c (1942): recycling connection cache slot=0 > [Wed Jan 26 17:16:00 2005] [6040:2256] [debug] jk_handler::mod_jk.c > (1860): Service finished with status=200 for worker=loadbalancer > [Wed Jan 26 17:16:00 2005] [6040:4016] [debug] > map_uri_to_worker::jk_uri_worker_map.c (700): Attempting to map URI > '/styles/messages.css' from 1 maps > [Wed Jan 26 17:16:00 2005] [6040:4016] [debug] > map_uri_to_worker::jk_uri_worker_map.c (718): Attempting to map > context > URI '/stars/*' > [Wed Jan 26 17:16:00 2005] [6040:4016] [debug] > map_uri_to_worker::jk_uri_worker_map.c (700): Attempting to map URI > '/styles/messages.css' from 1 maps > [Wed Jan 26 17:16:00 2005] [6040:4016] [debug] > map_uri_to_worker::jk_uri_worker_map.c (718): Attempting to map > context > URI '/stars/*' > > > > > -----Original Message----- > From: Filip Hanik - Dev [mailto:[EMAIL PROTECTED] > Sent: Wednesday, January 26, 2005 4:10 PM > To: Tomcat Users List > Subject: Re: JK, Session Replication/Clustering, SSL and failover in > Tomcat 5 > > > try with a regular tcp loadbalancer like pen (http://siag.nu/) first, > otherwise you are debugging a whole stack at once. > > so use pen, and your two tomcats, try failover and go from there. > also, enable debugging for your logging, and a lot more will be spit > out > in the logs > > Filip > > ----- Original Message ----- > From: "Richard Mixon (qwest)" <[EMAIL PROTECTED]> > To: <[email protected]> > Sent: Wednesday, January 26, 2005 4:37 PM > Subject: JK, Session Replication/Clustering, SSL and failover in > Tomcat 5 > > > I am trying to get JK 1.2.8 (within Apache 2.0.52 SSL build) to fail > over to my remaining Tomcat 5.5.7 instance when the first instance is > brought down (e.g. for maintenance or due to an actual failure). > > The application uses container managed authentication (CMA) and > obviously sessions. > > I have two questions/problems. Thanks so much for any ideas/help you > can provide. > > 1) If I set sticky_session=True then the loadbalancer worker > distributes requests among the two workers just fine. If I shut down > one Tomcat instance, it redirects me to the second - but I am > prompted to login > again. This makes me think that session replication is not occurring. > How can I check that session replication is happening (is there a log > settings)? > > I thought it must be at first as I was getting the following in my > tomcat logs: > >> From srv1: > > INFO main org.apache.coyote.http11.Http11Protocol - Initializing > Coyote HTTP/1.1 on http-8080 > INFO main org.apache.catalina.startup.Catalina - Initialization > processed in 875 ms > INFO main org.apache.catalina.core.StandardService - Starting service > Catalina > INFO main org.apache.catalina.core.StandardEngine - Starting Servlet > Engine: Apache Tomcat/5.5.7 > INFO main org.apache.catalina.core.StandardHost - XML validation > disabled > INFO main org.apache.catalina.cluster.tcp.SimpleTcpCluster - Cluster > is about to start > INFO main org.apache.catalina.cluster.mcast.McastService - Sleeping > for 2000 secs to establish cluster membership > INFO main org.apache.catalina.cluster.deploy.FarmWarDeployer - > Cluster FarmWarDeployer started. > INFO main org.apache.coyote.http11.Http11Protocol - Starting Coyote > HTTP/1.1 on http-8080 > INFO main org.apache.jk.common.ChannelSocket - JK2: ajp13 listening > on /0.0.0.0:8009 > INFO main org.apache.jk.server.JkMain - Jk running ID=0 time=0/31 > config=null > INFO main org.apache.catalina.storeconfig.StoreLoader - Find registry > server-registry.xml at classpath resource > INFO main org.apache.catalina.startup.Catalina - Server startup in > 6016 > ms > INFO Cluster-MembershipReceiver > org.apache.catalina.cluster.tcp.SimpleTcpCluster - Replication member > added:org.apache.catalina.cluster.mcast.McastMember[tcp://192.168.1.140: > 4002,192.168.1.140,4002, alive=16] > >> From srv2: > > INFO main org.apache.coyote.http11.Http11Protocol - Initializing > Coyote HTTP/1.1 on http-9080 > INFO main org.apache.catalina.startup.Catalina - Initialization > processed in 1250 ms > INFO main org.apache.catalina.core.StandardService - Starting service > Catalina > INFO main org.apache.catalina.core.StandardEngine - Starting Servlet > Engine: Apache Tomcat/5.5.7 > INFO main org.apache.catalina.core.StandardHost - XML validation > disabled > INFO main org.apache.catalina.cluster.tcp.SimpleTcpCluster - Cluster > is about to start > INFO main org.apache.catalina.cluster.mcast.McastService - Sleeping > for 2000 secs to establish cluster membership > INFO Cluster-MembershipReceiver > org.apache.catalina.cluster.tcp.SimpleTcpCluster - Replication member > added:org.apache.catalina.cluster.mcast.McastMember[tcp://192.168.1.140: > 4001,192.168.1.140,4001, alive=5578] > INFO main org.apache.catalina.cluster.deploy.FarmWarDeployer - > Cluster FarmWarDeployer started. > INFO main org.apache.coyote.http11.Http11Protocol - Starting Coyote > HTTP/1.1 on http-9080 > INFO main org.apache.jk.common.ChannelSocket - JK2: ajp13 listening > on /0.0.0.0:9009 > INFO main org.apache.jk.server.JkMain - Jk running ID=0 time=0/31 > config=null > INFO main org.apache.catalina.storeconfig.StoreLoader - Find registry > server-registry.xml at classpath resource > INFO main org.apache.catalina.startup.Catalina - Server startup in > 6313 > ms > > > 2) If I set sticky_session=False I am unable to login, failing with an > HTTP Status 408. Here's the sequence: > a) Issue a request to a protected resource that will trigger > form-based authentication (CMA). JK worker loadbalancer sends this > request to the first worker, "srv1". > b) After I fill in the authentication/login form I press submit. Now > JK worker loadbalancer send this request to worker "srv2" and I end up > with this error respons: HTTP Status 408 - The time allowed for the > login process has been exceeded... > > Here are my configuration files (or pieces): > > FILE: piece form httpd.conf > <IfModule mod_jk.c> > > JkWorkersFile conf/workers.properties > > JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " > JkLogFile logs/mod_jk.log > > # Log level to be used by mod_jk: debug, info, warn error or trace > JkLogLevel debug > > JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories > JkExtractSSL on > JkHTTPSIndicator HTTPS > JkSESSIONIndicator SSL_SESSION_ID > JkCIPHERIndicator SSL_CIPHER > JkCERTSIndicator SSL_CLIENT_CERT > > </IfModule> > > FILE: workers.properties > # workers.properties - > # > workers.tomcat_home=c:/jakarta-tomcat-5.5.7 > workers.java_home=C:/jdk1.5.0_01 > ps=/ > > # > # Define one worker for each tomcat instance, plus one > # to handle the load balancing. > # > worker.list=loadbalancer > > worker.srv1.port=8009 > worker.srv1.host=localhost > worker.srv1.type=ajp13 > worker.srv1.lbfactor=100 > worker.srv1.sticky_session=False > worker.srv1.local_worker=0 > > worker.srv2.port=9009 > worker.srv2.host=localhost > worker.srv2.type=ajp13 > worker.srv2.lbfactor=100 > worker.srv2.sticky_session=False > worker.srv2.local_worker=0 > > worker.loadbalancer.type=lb > worker.loadbalancer.sticky_session=False > worker.loadbalancer.balanced_workers=srv1,srv2 > worker.loadbalancer.local_worker_only=1 > > FILE: piece from server.xml on "srv1" > (note: I do not want automated deployment so I watchEnabled="false", I > do not want farm deployment to occur) > > <Cluster > className="org.apache.catalina.cluster.tcp.SimpleTcpCluster" > > managerClassName="org.apache.catalina.cluster.session.D eltaManager" > expireSessionsOnShutdown="true" > useDirtyFlag="true" > notifyListenersOnReplication="true"> > > <Membership > > className="org.apache.catalina.cluster.mcast.McastServic > e" > mcastAddr="228.0.0.4" > mcastPort="45564" > mcastFrequency="500" > mcastDropTime="3000"/> > > <Receiver > > className="org.apache.catalina.cluster.tcp.ReplicationLi stener" > tcpListenAddress="auto" > tcpListenPort="4001" > tcpSelectorTimeout="100" > tcpThreadCount="6"/> > > <Sender > > className="org.apache.catalina.cluster.tcp.ReplicationTr ansmitter" > replicationMode="pooled" > ackTimeout="15000"/> > > <Valve > className="org.apache.catalina.cluster.tcp.ReplicationValve" > > filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.ht > ml;.*\.css;.*\.txt;"/> > > <Deployer > className="org.apache.catalina.cluster.deploy.FarmWarDeployer" > tempDir="c:/jakarta-tomcat-5.5.7/temp" > deployDir="c:/jakarta-tomcat-5.5.7/webapps" > > watchDir="c:/jakarta-tomcat-5.5.7-deployer/build/w ebapp" > watchEnabled="false"/> > </Cluster> > > FILE: piece from server.xml on "srv2" > <Cluster > className="org.apache.catalina.cluster.tcp.SimpleTcpCluster" > > managerClassName="org.apache.catalina.cluster.session.D eltaManager" > expireSessionsOnShutdown="true" > useDirtyFlag="true" > notifyListenersOnReplication="true"> > > <Membership > > className="org.apache.catalina.cluster.mcast.McastServic > e" > mcastAddr="228.0.0.4" > mcastPort="45564" > mcastFrequency="500" > mcastDropTime="3000"/> > > <Receiver > > className="org.apache.catalina.cluster.tcp.ReplicationLi stener" > tcpListenAddress="auto" > tcpListenPort="4002" > tcpSelectorTimeout="100" > tcpThreadCount="6"/> > > <Sender > > className="org.apache.catalina.cluster.tcp.ReplicationTr ansmitter" > replicationMode="pooled" > ackTimeout="15000"/> > > <Valve > className="org.apache.catalina.cluster.tcp.ReplicationValve" > > filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.ht > ml;.*\.css;.*\.txt;"/> > > <Deployer > className="org.apache.catalina.cluster.deploy.FarmWarDeployer" > tempDir="c:/jakarta-tomcat-5.5.7b/temp" > deployDir="c:/jakarta-tomcat-5.5.7b/webapps" > > watchDir="c:/jakarta-tomcat-5.5.7-deployer/build/w ebapp" > watchEnabled="false"/> > </Cluster> > > Thanks again - Richard > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
