Ehlers, Kolja wrote: > Hello everybody, > > we are running a couple of clustered Tomcat 5.5.9 instances and keep > experiencing problems in our productive environment. This is > the configuration:
The current version is 5.5.27, there have been a lot of bug fixes since 5.5.9. You should definitely upgrade to a more recent version before proceeding. Be careful to read the complete change log before you do so as there are several fixes that often catch people out. p > <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster" > > managerClassName="org.apache.catalina.cluster.session.DeltaManager" > expireSessionsOnShutdown="false" > useDirtyFlag="true" > notifyListenersOnReplication="true"> > > <Membership > className="org.apache.catalina.cluster.mcast.McastService" > mcastAddr="239.255.0.1" > mcastPort="45789" > mcastFrequency="500" > mcastDropTime="3000"/> > > <Receiver > > className="org.apache.catalina.cluster.tcp.ReplicationListener" > tcpListenAddress="10.0.0.30" > tcpListenPort="4439" > tcpSelectorTimeout="100" > tcpThreadCount="2"/> > > <Sender > > className="org.apache.catalina.cluster.tcp.ReplicationTransmitter" > replicationMode="pooled" > ackTimeout="15000"/> > > <Valve > className="org.apache.catalina.cluster.tcp.ReplicationValve" > > filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/> > > <Deployer > className="org.apache.catalina.cluster.deploy.FarmWarDeployer" > tempDir="/tmp/war-temp38/" > deployDir="/opt/jakarta/dep38/war-deploy/" > watchDir="/opt/jakarta/dep38/war-listen/" > watchEnabled="false"/> > </Cluster> > > This is the log of node2: > > Jun 22, 2009 10:06:16 AM org.apache.catalina.cluster.tcp.DataSender waitForAck > WARNING: Wasnt able to read acknowledgement from > server[{0}:{1,number,integer}] in {2,number,integer} ms. Disconnecting > socket, and > trying again. > Jun 22, 2009 10:06:16 AM org.apache.catalina.cluster.tcp.DataSender waitForAck > WARNING: Wasnt able to read acknowledgement from > server[{0}:{1,number,integer}] in {2,number,integer} ms. Disconnecting > socket, and > trying again. > Jun 22, 2009 10:06:31 AM org.apache.catalina.cluster.tcp.DataSender waitForAck > WARNING: Wasnt able to read acknowledgement from > server[{0}:{1,number,integer}] in {2,number,integer} ms. Disconnecting > socket, and > trying again. > Jun 22, 2009 10:06:31 AM > org.apache.catalina.cluster.tcp.ReplicationTransmitter sendMessageData > WARNING: Unable to send replicated message, is server down? > java.net.SocketTimeoutException: Read timed out > at java.net.SocketInputStream.socketRead0(Native Method) > at java.net.SocketInputStream.read(SocketInputStream.java:129) > at java.net.SocketInputStream.read(SocketInputStream.java:182) > at > org.apache.catalina.cluster.tcp.DataSender.waitForAck(DataSender.java:530) > at > org.apache.catalina.cluster.tcp.DataSender.pushMessage(DataSender.java:508) > at > org.apache.catalina.cluster.tcp.DataSender.sendMessage(DataSender.java:378) > at > org.apache.catalina.cluster.tcp.PooledSocketSender.sendMessage(PooledSocketSender.java:118) > at > org.apache.catalina.cluster.tcp.ReplicationTransmitter.sendMessageData(ReplicationTransmitter.java:646) > at > org.apache.catalina.cluster.tcp.ReplicationTransmitter.sendMessage(ReplicationTransmitter.java:348) > at > org.apache.catalina.cluster.tcp.SimpleTcpCluster.send(SimpleTcpCluster.java:466) > at > org.apache.catalina.cluster.tcp.SimpleTcpCluster.send(SimpleTcpCluster.java:495) > at > org.apache.catalina.cluster.session.DeltaManager.sessionExpired(DeltaManager.java:811) > at > org.apache.catalina.cluster.session.DeltaSession.expire(DeltaSession.java:730) > at > org.apache.catalina.cluster.session.DeltaSession.expire(DeltaSession.java:653) > at > org.apache.catalina.cluster.session.DeltaSession.expire(DeltaSession.java:641) > at > org.apache.catalina.cluster.session.DeltaSession.invalidate(DeltaSession.java:1042) > at > org.apache.catalina.cluster.session.DeltaSessionFacade.invalidate(DeltaSessionFacade.java:150) > at webapp.control.FrontServlet.doProcessRequest(Unknown Source) > at webapp.control.FrontServlet.doGet(Unknown Source) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > at filters.TimeoutFilter.doFilter(TimeoutFilter.java:53) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) > at > org.apache.catalina.cluster.tcp.ReplicationValve.invoke(ReplicationValve.java:145) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) > at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:307) > at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:385) > at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:748) > at > org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:678) > at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:871) > at > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) > at java.lang.Thread.run(Thread.java:595) > Jun 22, 2009 10:06:31 AM org.apache.catalina.cluster.tcp.DataSender waitForAck > WARNING: Wasnt able to read acknowledgement from > server[{0}:{1,number,integer}] in {2,number,integer} ms. Disconnecting > socket, and > trying again. > Jun 22, 2009 10:06:46 AM org.apache.catalina.cluster.tcp.DataSender waitForAck > WARNING: Wasnt able to read acknowledgement from > server[{0}:{1,number,integer}] in {2,number,integer} ms. Disconnecting > socket, and > trying again. > Jun 22, 2009 10:06:56 AM org.apache.catalina.cluster.tcp.DataSender <init> > INFO: Create sender [cwww1/10.0.0.30:4,437] > Jun 22, 2009 10:07:01 AM org.apache.catalina.cluster.tcp.DataSender waitForAck > WARNING: Wasnt able to read acknowledgement from > server[{0}:{1,number,integer}] in {2,number,integer} ms. Disconnecting > socket, and > trying again. > Jun 22, 2009 10:07:02 AM org.apache.catalina.cluster.tcp.DataSender waitForAck > WARNING: Wasnt able to read acknowledgement from > server[{0}:{1,number,integer}] in {2,number,integer} ms. Disconnecting > socket, and > trying again. > > The node1 logs do not show anything during that time. I have read that for a > productive environment to increase > mcastFrequency="500", mcastDropTime="3000" and to install the cluster fix. > But my guess is that the problem with receiving the > acknowledgement is more or a session replication problem and not a problem > receiving the tomcat heartbeats. > > Thanks for your help > > Regards > > KE > > Geschäftsführung: Dr. Michael Fischer, Reinhard Eisebitt > Amtsgericht Köln HRB 32356 > Steuer-Nr.: 217/5717/0536 > Ust.Id.-Nr.: DE 204051920 > -- > This email transmission and any documents, files or previous email > messages attached to it may contain information that is confidential or > legally privileged. If you are not the intended recipient or a person > responsible for delivering this transmission to the intended recipient, > you are hereby notified that any disclosure, copying, printing, > distribution or use of this transmission is strictly prohibited. If you > have received this transmission in error, please immediately notify the > sender by telephone or return email and delete the original transmission > and its attachments without reading or saving in any manner. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org