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:
<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: [email protected]
For additional commands, e-mail: [email protected]