Hi

I have a three machine Tomcat cluster with one tomcat instance on each. Machine names are "pathsrv1", "raid2b" and "reptile". The OS is OSX 10.5 on two machines and OSX 10.4.11 on one machine. The JVM is the latest for the particular OS. "pathsrv1" act as a reverse proxy for all three machines. I am getting the error bellow in all three machines onto the catalina.out.

<snip>
Feb 8, 2009 7:02:19 PM org.apache.catalina.ha.context.ReplicatedContext start
SEVERE: Unable to start ReplicatedContext
java.lang.NullPointerException
        at java.io.File.<init>(File.java:194)
at org .apache.catalina.core.StandardContext.getBasePath(StandardContext.java: 4784) at org .apache .catalina.ha.context.ReplicatedContext.start(ReplicatedContext.java:62) at org .apache .catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java: 771) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java: 525) at org .apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java: 627) at org .apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java: 553) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java: 488)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java: 311) at org .apache .catalina .util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java: 1053)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java: 1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java: 443) at org.apache.catalina.core.StandardService.start(StandardService.java:516) at org.apache.catalina.core.StandardServer.start(StandardServer.java: 710)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun .reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 39) at sun .reflect .DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Feb 8, 2009 7:02:19 PM org.apache.catalina.core.ContainerBase addChildInternal
SEVERE: ContainerBase.addChild: start:
LifecycleException: Failed to start ReplicatedContext: java.lang.NullPointerException at org .apache .catalina.ha.context.ReplicatedContext.start(ReplicatedContext.java:73) at org .apache .catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java: 771) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java: 525) at org .apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java: 627) at org .apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java: 553) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java: 488)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java: 311) at org .apache .catalina .util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java: 1053)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java: 1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java: 443) at org.apache.catalina.core.StandardService.start(StandardService.java:516) at org.apache.catalina.core.StandardServer.start(StandardServer.java: 710)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun .reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 39) at sun .reflect .DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Feb 8, 2009 7:02:19 PM org.apache.catalina.startup.HostConfig deployDescriptor
SEVERE: Error deploying configuration descriptor CassetteLabeler.xml
java.lang.IllegalStateException: ContainerBase.addChild: start: LifecycleException: Failed to start ReplicatedContext: java.lang.NullPointerException at org .apache .catalina.core.ContainerBase.addChildInternal(ContainerBase.java:795) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java: 771) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java: 525) at org .apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java: 627) at org .apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java: 553) at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java: 488)
        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java: 311) at org .apache .catalina .util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java: 1053)
        at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java: 1045) at org.apache.catalina.core.StandardEngine.start(StandardEngine.java: 443) at org.apache.catalina.core.StandardService.start(StandardService.java:516) at org.apache.catalina.core.StandardServer.start(StandardServer.java: 710)
        at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun .reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 39) at sun .reflect .DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

</snip>

The replicatedContext is in the webapp's META-INF/context.xml:

pathsrv1:META-INF administrator$ cat context.xml
<?xml version="1.0" encoding="UTF-8"?>
<Context path="" docBase="ROOT" className="org.apache.catalina.ha.context.ReplicatedContext">
</Context>

Any good idea what did I misconfigured ?

The server.xml is the standard one, with only the following modifications

<snip>
<Engine name="Catalina" defaultHost="localhost" jvmRoute="pathsrv1">

      <!--For clustering, please take a look at documentation at:
          /docs/cluster-howto.html  (simple how to)
          /docs/config/cluster.html (reference documentation) -->

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

</snip>
of course the jvmRoute is different in all three machines. So I use the default settings as much as I could.

I am getting these into the mod_jk.log of "pathsrv1":
[Sun Feb 08 16:42:11 2009] [41658:0000] [info] ajp_send_request::jk_ajp_common.c (1215): (raid2b) error sending request. Will try another pooled connection [Sun Feb 08 16:42:11 2009] [41658:0000] [info] ajp_send_request::jk_ajp_common.c (1241): (raid2b) all endpoints are disconnected [Sun Feb 08 16:42:11 2009] [41658:0000] [info] ajp_send_request::jk_ajp_common.c (1244): (raid2b) increase the backend idle connection timeout or the connection_pool_minsize [Sun Feb 08 16:42:11 2009] [41658:0000] [info] ajp_service::jk_ajp_common.c (1941): (raid2b) sending request to tomcat failed, recoverable operation attempt=1 [Sun Feb 08 16:50:01 2009] [43073:0000] [info] ajp_send_request::jk_ajp_common.c (1215): (reptile) error sending request. Will try another pooled connection [Sun Feb 08 16:50:01 2009] [43073:0000] [info] ajp_send_request::jk_ajp_common.c (1241): (reptile) all endpoints are disconnected [Sun Feb 08 16:50:01 2009] [43073:0000] [info] ajp_send_request::jk_ajp_common.c (1244): (reptile) increase the backend idle connection timeout or the connection_pool_minsize [Sun Feb 08 16:50:01 2009] [43073:0000] [info] ajp_service::jk_ajp_common.c (1941): (reptile) sending request to tomcat failed, recoverable operation attempt=1


The workers.properties are:
pathsrv1:apache2 administrator$ cat workers.properties
ps=/
worker.list=loadbalancer, jkstatus

worker.jkstatus.type=status

# ------------------------
# First Tomcat server named pathsrv1
# ------------------------
worker.pathsrv1.type=ajp13
worker.pathsrv1.host=localhost
worker.pathsrv1.port=8009
worker.pathsrv1.lbfactor=10
worker.pathsrv1.redirect=reptile
worker.pathsrv1.sticky_session=True
worker.pathsrv1.sticky_session_force=False

# ------------------------
# Second Tomcat server named reptile
# ------------------------
worker.reptile.type=ajp13
worker.reptile.host=reptile.yalepath.org
worker.reptile.port=8009
worker.reptile.lbfactor=10
worker.reptile.redirect=raid2b
worker.reptile.sticky_session=True
worker.reptile.sticky_session_force=False

# ---------------------------
# Third Tomcat server named raid2b
# ---------------------------
worker.raid2b.type=ajp13
worker.raid2b.host=raid2b.yalepath.org
worker.raid2b.port=8009
worker.raid2b.lbfactor=10
worker.raid2b.redirect=pathsrv1
worker.raid2b.sticky_session=True
worker.raid2b.sticky_session_force=False

# ------------------------
# Load Balancer worker
# ------------------------

#
# The loadbalancer (type lb) worker performs weighted round-robin
# load balancing with sticky sessions.
# Note:
#  ----> If a worker dies, the load balancer will check its state
#        once in a while. Until then all work is redirected to peer
#        worker.
worker.loadbalancer.type=lb
worker.loadbalancer.balance_workers=pathsrv1, reptile, raid2b

of course it is slightly changed for the other two machines.

Interestingly if I am ps-ing for java on the machines:
this is on pathsrv1:
pathsrv1:apache2 administrator$ ps -avx |grep java
41068 S 1:08.05 0 0 0 477616 69040 - 0 0.0 1.6 /System/Library/Frameworks/JavaVM.framework/Versions/ CurrentJDK/Home/bin/java - Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager - Djava.util.logging.config.file=/Library/Tomcat/conf/logging.properties -Djava.endorsed.dirs=/Library/Tomcat/endorsed -classpath :/Library/ Tomcat/bin/bootstrap.jar -Dcatalina.base=/Library/Tomcat - Dcatalina.home=/Library/Tomcat -Djava.io.tmpdir=/Library/Tomcat/temp org.apache.catalina.startup.Bootstrap start 15284 R+ 0:00.00 0 0 0 599740 372 - 0 0.0 0.0 grep java

this is on raid2b:
raid2b:/usr/local/apache/logs administrator$ ps -avx |grep java
10364 R 1129:31.91 0 2316 0 1462244 126144 - 0 100.1 -6.0 /System/Library/Frameworks/JavaVM.framework/Versions/ CurrentJDK/Home/bin/java - Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager - Djava.util.logg 12790 S+ 0:00.00 0 812 0 27376 420 - 0 0.0 -0.0 grep java 10365 Z 0:00.00 0 404 0 0 0 - 0 0.0 -0.0 (java)

reptile:logs administrator$ ps -avx |grep java
68266 S 16:44.41 0 0 0 496476 99864 - 0 0.0 2.4 /System/Library/Frameworks/JavaVM.framework/Versions/ CurrentJDK/Home/bin/java - Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager - Djava.util.logging.config.file=/usr/local/tomcat/conf/ logging.properties -Djava.endorsed.dirs=/usr/local/tomcat/endorsed - classpath :/usr/local/tomcat/bin/bootstrap.jar -Dcatalina.base=/usr/ local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/ local/tomcat/temp org.apache.catalina.startup.Bootstrap start 73272 S+ 0:00.00 0 0 0 599740 376 - 0 0.4 0.0 grep java


Looks to me that Tomcat is not running right on raid2b. I do not know of any other programs using the 8009 port. The java -version on the three machines:

pathsrv1:apache2 administrator$ java -version
java version "1.5.0_16"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_16- b06-284)
Java HotSpot(TM) Server VM (build 1.5.0_16-133, mixed mode)


raid2b:/usr/local/apache/logs administrator$ java -version
java version "1.5.0_16"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_16- b06-275)
Java HotSpot(TM) Client VM (build 1.5.0_16-132, mixed mode)


reptile:logs administrator$ java -version
java version "1.5.0_16"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_16- b06-284)
Java HotSpot(TM) Server VM (build 1.5.0_16-133, mixed mode)



Thanks ahead,

János
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to