tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Eggers <>
Subject Re: SEVERE: Unable to start cluster.
Date Thu, 05 Apr 2012 21:01:31 GMT
Response at the bottom:


> From: Dhaval Jaiswal <>
>To: Tomcat Users List <> 
>Sent: Thursday, April 5, 2012 10:28 AM
>Subject: Re: SEVERE: Unable to start cluster.
>pfa server.xml 
>The same i am using for all the 10 tomcats. 
>On Thu, Apr 5, 2012 at 9:55 PM, Pid <> wrote:
>On 05/04/2012 15:13, Dhaval Jaiswal wrote:
>>> I have tested the below cluster manager; as per the instruction i have
>>> changed. However, when we try to deploy the apps on tomcat it was
>>> throwing error that
>>> WARNING: Unable to send map start message.
>>> Apr 5, 2012 1:37:12 PM org.apache.catalina.ha.session.BackupManager start
>>> SEVERE: Unable to start BackupManager
>>> java.lang.RuntimeException: Unable to start replicated map.
>>>        at
>>> org.apache.catalina.tribes.tipis.AbstractReplicatedMap.init(
>>> Failed to start BackupManager:  java.lang.IllegalArgumentException:
>>> Listener already
>>> exists:{}[org.apache.catalina.tribes.tipis.LazyReplicatedMap]
>>> i am using below server.xml for all the 10 tomcats. Do i have to change
>>> it for every tomcat. How would i fix it.
>>> <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
>>> channelSendOptions="6">
>>>         <Manager
>>> className="org.apache.catalina.ha.session.BackupManager"
>>> expireSessionsOnShutdown="false"
>>>                    notifyListenersOnReplication="true" mapSendOptions="6"/>
>>>             <Channel
>>> className="">
>>>              <Membership
>>> className="org.apache.catalina.tribes.membership.McastService"
>>>                         address=""
>>>                         port="45563"
>>>                         frequency="500"
>>>                         dropTime="30000"/>
>>>              <Receiver
>>> className="org.apache.catalina.tribes.transport.nio.NioReceiver"
>>>                       address="auto"
>>>                       port="4000"
>>>                       selectorTimeout="5000"
>>>                       timeout="60000"
>>>                       maxThreads="6"/>
>>>              <Sender
>>> className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
>>>                   <Transport
>>> className="org.apache.catalina.tribes.transport.nio.PooledParallelSender" timeout="60000"
>>> keepAliveCount="0"/>
>>>              </Sender>
>>>              <Interceptor
>>> className=""/>
>>>              <Interceptor
>>> className=""/>
>>>             <!--  <Interceptor
>>> className=""/>
>>> -->
>>>            </Channel>
>>>          <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
>>> filter=".*\.gif|.*\.js|.*\.jpeg|.*\.jpg|.*\.png|.*\.htm|.*\.html|.*\.css|.*\.txt"/>
>>>          <Valve
>>> className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
>>>        <ClusterListener
>>> className="org.apache.catalina.ha.session.ClusterSessionListener"/>
>>>        <ClusterListener
>>> className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
>>>      </Cluster>
>>Wow.  That's pretty neat, I've never seen Tomcat start up with just the
>>cluster definition.
>>How about you:
>>1) remove all comments
>>2) remove all passwords
>>3) post the whole server.xml inline in your next reply


Please try to avoid posting in HTML. The font is sometimes difficult to read.

Please don't cc me. I get the same message on the list, and with about 200 mail messages per
day on this account I might overlook stuff if I get a lot of duplicate messages.

Please post stuff inline and not as attachments. While I got the attached server.xml file,
the list generally strips attachments.

All that being said, here are my comments:

<!-- From your server.xml -->
  className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
  className="org.apache.catalina.core.JasperListener" />
  className="org.apache.catalina.mbeans.ServerLifecycleListener" />
  className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />

So you've removed the memory leak prevention listener from your
server.xml? Is there any reason why you've done that?

<!-- from your server.xml -->
<Connector port="8080" protocol="HTTP/1.1" 
           redirectPort="8443" />

<Connector port="8009"
           maxThreads="40000" />

No URIEncoding="UTF-8" on your connectors? I checked your web site and
there doesn't seem to be any characters that would be
impacted. However, I was thinking that setting UTF-8 on all connectors
is in general a good thing.

40000 threads for the AJP connector with only a backlog of 100? I hope that

a) your Apache HTTPD server is configured appropriately
b) you can have this many file descriptors open

<!-- from your server.xml -->

You said that you use this same server.xml for all 10
Tomcats. However, in a previous message you said you were trying to
cluster 7 Tomcats ( to If you use the same
multicast address and port for all 10 Tomcats, then all 10 Tomcats
will be a part of the cluster.

> I have tested the below cluster manager; as per the instruction i have

> changed. However, when we try to deploy the apps on tomcat it was
> throwing error that 

Does this mean that the cluster actually starts without your web
application? If you've modified the file, what does
the cluster logging file say? Please post the information inline as the
mailing list tends to strip attachments.

The default dropTime is 3000 ms (3 seconds). Is your network busy

enough so that a 30 second drop time is reasonable? If it is, then
maybe a better networking infrastructure is in order.

<!-- from your server.xml -->

keepAliveCount="0" ?

From the documentation:

The number of requests that can go through the socket before the
socket is closed, and reopened for the next request. The default value
is -1, which is unlimited.

So you're saying here that NO requests can go through the socket
before the socket is closed? At the best interpretation, you'll get
one message through the socket, then the socket closes and
reopens. This doesn't sound very performant.

Other than that, your clustering setup does not look a lot different
than mine. I place my cluster in the <Host> element since I am
experimenting with farm deployment. Mine works even when changing from
the DeltaManager (only three node cluster) to the BackupManager.

What is in your application's context.xml and web.xml files? Please
post both (inline - the list tends to strip attachments), with
comments and sensitive information removed.

I suspect that you have a listener defined in either context.xml or

All you really need to do to get session clustering to work is:

1. <distributable/> in web.xml
2. Make sure that all session objects are serializalble.

Actually there is a bit more, but the above are the basics.

. . . . just my two cents.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message