I have 2 servers running Tomcat 7.0.54 in a cluster, and sometimes I see these context manager warnings when shutting down or restarting a JVM on one of the servers:
2016-03-01 10:14:53,414 [Thread-8] INFO org.apache.coyote.ajp.AjpProtocol- Pausing ProtocolHandler ["ajp-bio-8106"]
2016-03-01 10:14:53,471 [Thread-8] INFO org.apache.coyote.http11.Http11Protocol- Pausing ProtocolHandler ["http-bio-8206"]
2016-03-01 10:14:53,521 [Thread-8] INFO org.apache.catalina.core.StandardService- Stopping service MyService
2016-03-01 10:14:53,678 [Catalina-startStop-2] INFO org.apache.catalina.ha.session.JvmRouteBinderValve- JvmRouteBinderValve stopped
2016-03-01 10:14:53,757 [localhost-startStop-2] INFO org.apache.catalina.ha.session.DeltaManager- Manager [] expiring sessions upon shutdown
2016-03-01 10:14:53,921 [Tribes-Task-Receiver-5] WARN org.apache.catalina.ha.session.ClusterSessionListener- Context manager doesn't exist:
2016-03-01 10:14:53,936 [Tribes-Task-Receiver-5] WARN org.apache.catalina.ha.session.ClusterSessionListener- Context manager doesn't exist:
2016-03-01 10:14:53,936 [Tribes-Task-Receiver-5] WARN org.apache.catalina.ha.session.ClusterSessionListener- Context manager doesn't exist:
2016-03-01 10:14:53,994 [Tribes-Task-Receiver-5] WARN org.apache.catalina.ha.session.ClusterSessionListener- Context manager doesn't exist:
2016-03-01 10:14:54,018 [Tribes-Task-Receiver-1] WARN org.apache.catalina.ha.session.ClusterSessionListener- Context manager doesn't exist:
...
This used to happen in the old environment as well, running Tomcat 5.5. The WARN messages continue until the Tomcat java process is killed. In the research I've done, all examples have a context manager name after "Context manager doesn't exist:", but mine doesn't. Also, I've seen some people say to change the logging level to SEVERE to suppress these messages. First of all, if the java process keeps running unless I kill it manually, suppressing the warnings won't help anything. Secondly, I'd like to know why I'm getting these warnings and what they mean... I haven't found an answer to that.
I have 3 questions:
- What do these warnings mean?
- Why is it blank after "Context manager doesn't exist:"?
- What is Tomcat waiting on to stop the java process? (i.e. Why won't it stop without killing the process?)
conf/context.xml:
<Context path="" docBase="ROOT" debug="0" reloadable="true">
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
conf/server.xml:
<?xml version='1.0' encoding='utf-8'?>
<Server port="8006" shutdown="SHUTDOWN">
<GlobalNamingResources>
<Environment name="simpleValue" type="java.lang.Integer" value="30"/>
<Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<Service name="MyService">
<Connector port="8106" maxThreads="300" acceptCount="200" keepAliveTimeout="5" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
<Connector port="8206" enableLookups="false" redirectPort="8443" protocol="HTTP/1.1" />
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8">
<Manager className="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/>
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="<ip address of server 1>"
port="4006"
autoBind="100"
selectorTimeout="5000"
maxThreads="6"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor">
<Member className="org.apache.catalina.tribes.membership.StaticMember"
port="4006" securePort="-1"
host="<ip address of server 2>"
domain="tomcat-server-cluster"
uniqueId="{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,0}" />
</Interceptor>
<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;.*Monitor\.jsp;"/>
<Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
<ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
</Host>
</Engine>
</Service>
</Server>