Dear users,
I am trying to setup tomcat clustering/session replication between two
tomcats of version 6.0.18. The following is the cluster snippet inserted
into server.xml of both servers:
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="8">
<Manager
className="org.apache.catalina.ha.session.BackupManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"
mapSendOptions="6"/>
<Channel
className="org.apache.catalina.tribes.group.GroupChannel">
<Membership
className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver
className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto"
port="5000"
selectorTimeout="100"
maxThreads="6"/>
<Sender
className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport
className="org.apache.catalina.tribes.transport.nio.PooledParallelSender
" timeout="60000"/>
</Sender>
<Interceptor
className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetec
tor"/>
<Interceptor
className="org.apache.catalina.tribes.group.interceptors.MessageDispatch
15Interceptor"/>
<Interceptor
className="org.apache.catalina.tribes.group.interceptors.ThroughputInter
ceptor"/>
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;
"/>
<Deployer
className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
<ClusterListener
className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
I am having the following errors on both of my tomcats:
May 4, 2010 5:51:46 AM org.apache.catalina.connector.CoyoteAdapter
service
SEVERE: An exception or error occurred in the container during the
request processing
java.lang.NullPointerException
at
org.apache.catalina.ha.tcp.ReplicationValve.invoke(ReplicationValve.java
:348)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:2
86)
at
org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
at
org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:283)
at
org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:767)
at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:
697)
at
org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.
java:889)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool
.java:690)
at java.lang.Thread.run(Thread.java:619)
WARNING: Member send is failing for:tcp://{-84, 16, -68, 46}:5000 ;
Setting to suspect and retrying.
May 4, 2010 5:54:13 AM
org.apache.catalina.tribes.tipis.LazyReplicatedMap publishEntryInfo
SEVERE: Unable to replicate backup
key:B90703FBD00D77B21937383FBE71CBF1.tomcatA to
backup:org.apache.catalina.tribes.membership.MemberImpl[tcp://{-84, 16,
-68, 46}:5000,{-84, 16,
-68, 46},5000, alive=4660,id={-63 85 -65 15 -86 -78 66 26 -74 -118 51
-13 -50 97 102 -103 }, payload={}, command={}, domain={}, ]. Reason:Send
failed, attempt:2 max:1; Faulty memb
ers:tcp://{-84, 16, -68, 46}:5000;
org.apache.catalina.tribes.ChannelException: Send failed, attempt:2
max:1; Faulty members:tcp://{-84, 16, -68, 46}:5000;
at
org.apache.catalina.tribes.transport.nio.ParallelNioSender.doLoop(Parall
elNioSender.java:172)
at
org.apache.catalina.tribes.transport.nio.ParallelNioSender.sendMessage(P
arallelNioSender.java:78)
at
org.apache.catalina.tribes.transport.nio.PooledParallelSender.sendMessag
e(PooledParallelSender.java:53)
at
org.apache.catalina.tribes.transport.ReplicationTransmitter.sendMessage(
ReplicationTransmitter.java:80)
at
org.apache.catalina.tribes.group.ChannelCoordinator.sendMessage(ChannelC
oordinator.java:78)
at
org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(Chan
nelInterceptorBase.java:75)
at
org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor.send
Message(ThroughputInterceptor.java:61)
at
org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(Chan
nelInterceptorBase.java:75)
at
org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor
.sendMessage(MessageDispatchInterceptor.java:73)
at
org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(Chan
nelInterceptorBase.java:75)
at
org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.sendMes
sage(TcpFailureDetector.java:87)
at
org.apache.catalina.tribes.group.ChannelInterceptorBase.sendMessage(Chan
nelInterceptorBase.java:75)
at
org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:216
)
at
org.apache.catalina.tribes.group.GroupChannel.send(GroupChannel.java:175
)
at
org.apache.catalina.tribes.tipis.LazyReplicatedMap.publishEntryInfo(Lazy
ReplicatedMap.java:158)
at
org.apache.catalina.tribes.tipis.AbstractReplicatedMap.mapMemberAdded(Ab
stractReplicatedMap.java:677)
at
org.apache.catalina.tribes.tipis.AbstractReplicatedMap.replyRequest(Abst
ractReplicatedMap.java:494)
at
org.apache.catalina.tribes.group.RpcChannel.messageReceived(RpcChannel.j
ava:124)
at
org.apache.catalina.tribes.group.GroupChannel.messageReceived(GroupChann
el.java:269)
at
org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(
ChannelInterceptorBase.java:79)
at
org.apache.catalina.tribes.group.interceptors.TcpFailureDetector.message
Received(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.interceptors.ThroughputInterceptor.mess
ageReceived(ThroughputInterceptor.java:86)
at
org.apache.catalina.tribes.group.ChannelInterceptorBase.messageReceived(
ChannelInterceptorBase.java:79)
at
org.apache.catalina.tribes.group.ChannelCoordinator.messageReceived(Chan
nelCoordinator.java:241)
at
org.apache.catalina.tribes.transport.ReceiverBase.messageDataReceived(Re
ceiverBase.java:225)
at
org.apache.catalina.tribes.transport.nio.NioReplicationTask.drainChannel
(NioReplicationTask.java:188)
at
org.apache.catalina.tribes.transport.nio.NioReplicationTask.run(NioRepli
cationTask.java:91)
at
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecuto
r.java:886)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.ja
va:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: org.apache.catalina.tribes.RemoteProcessException: Received a
failed ack:org.apache.catalina.tribes.transport.Constants.FAIL_ACK_DATA
Session replication is not working as expected for me. I am using the
apache webserver as SLB for the tomcats.
I have been debugging the above problems for a long time now but haven't
found the solution yet.
Any ideas of what might be the problem? I am suspecting that the tomcats
are not communicating well through the multicast address but I am not
sure.
Thanks for your help,
Regards,
Josef
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]