Strange!
mcastClusterDomain is set a McastService constructor....
public McastService() {
properties.setProperty("mcastClusterDomain", "catalina");
}
Please don't use a real loadbalancer like apache with mod_jk instead the
crazy redirect thing at
http://www.onjava.com/pub/a/onjava/2004/04/14/clustering.html)
Which version of tomcat 5.5 you use? Please, use Tomcat 5.5.17 or
better coming 5.5.20.
regards,
peter
====
I'm trying to perform a simple cluster setup with Tomcat 5.5 and been
running into some problems.
Here's the link to the tutorial that I'm trying to follow:
http://tomcat.apache.org/tomcat-5.5-doc/cluster-howto.html.
Below is an excerpt of the stack trace, I'm using the balancer
application
from tomcat.
2006-09-25 22:11:43,718 (WebPortalLogger.java:44) - 923014548 : 1
2006-09-25 22:11:43,718 (WebPortalLogger.java :44) - Requested server
instance did not match..
2006-09-25 22:11:43,734 (WebPortalLogger.java:44) - getServerInstance
() : 1
2006-09-25 22:11:43,734 (WebPortalLogger.java:44) -
getMaxServerInstances()
: 3
2006-09-25 22:11:43,734 (WebPortalLogger.java:44) - 1876138717 : 2
2006-09-25 22:11:43,734 (WebPortalLogger.java:44) - Requested server
instance did not match..
2006-09-25 22:11:43,734 (WebPortalLogger.java:44) - getServerInstance
() : 2
2006-09-25 22:11:43,734 (WebPortalLogger.java:44) -
getMaxServerInstances()
: 3
2006-09-25 22:11:43,734 (WebPortalLogger.java:44) - 747657098 : 3
2006-09-25 22:11:43,734 (WebPortalLogger.java:44) - Requested server
instance did not match..
2006-09-25 22:11:43,734 (WebPortalLogger.java:44) - getServerInstance
() : 3
2006-09-25 22:11:43,734 (WebPortalLogger.java:44) -
getMaxServerInstances()
: 3
2006-09-25 22:11:43,734 (WebPortalLogger.java:44) - 388758323 : 3
2006-09-25 22:11:43,734 (WebPortalLogger.java:44) - Requested server
instance match..
java.lang.IllegalArgumentException: Required property
"mcastClusterDomain"
is missing.
at org.apache.catalina.cluster.mcast.McastService.hasProperty (
McastService.java:252)
at org.apache.catalina.cluster.mcast.McastService.setProperties(
McastService.java:140)
at common.utilities.ServerUtil.isServerAlive(ServerUtil.java:36)
at
org.apache.webapp.balancer.rules.BaseLoadBalancingRule.isServerAlive (
BaseLoadBalancingRule.java:89)
at org.apache.webapp.balancer.rules.RandomRedirectRule.matches(
RandomRedirectRule.java:41)
at org.apache.webapp.balancer.RuleChain.evaluate
(RuleChain.java:100)
at org.apache.webapp.balancer.BalancerFilter.doFilter(
BalancerFilter.java:118)
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.session.JvmRouteBinderValve.invoke(
JvmRouteBinderValve.java:208)
at org.apache.catalina.cluster.tcp.ReplicationValve.invoke (
ReplicationValve.java:346)
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.coyote.http11.Http11Processor.process(
Http11Processor.java:869)
at
org.apache.coyote.http11.Http11BaseProtocol
$Http11ConnectionHandler.processConnection(
Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(
PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(
LeaderFollowerWorkerThread.java :80)
at org.apache.tomcat.util.threads.ThreadPool
$ControlRunnable.run(
ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
2006-09-25 22:11:43,734 (WebPortalLogger.java:44) - Time taken to check
connection: 0 ms.
** THE SERVER IS NOT AVAILABLE **
2006-09-25 22:11:43,734 (WebPortalLogger.java:44) -
RandomRedirectRule --
isAlive : false
Below is my server.xml configuration for Tomcat 5.5: (only the
receiver.tcpListenPort was modified for the other instances.)
<Server port="8011"
shutdown="SHUTDOWN" >
<GlobalNamingResources>
<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="Catalina">
<Connector port="9012"
protocol="AJP/1.3"
<Connector port="9013"
maxThreads="100"
minSpareThreads="4"
maxSpareThreads="4"
/>
<Engine name="Catalina"
defaultHost="localhost"
jvmRoute="node1">
<Realm className="
org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase" />
<Host name="localhost"
appBase="webapps">
<Cluster
className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"/>
</Host>
</Engine>
</Service>
</Server>
I used a different tutorial (
http://www.onjava.com/pub/a/onjava/2004/04/14/clustering.html) for
Tomcat
5.0 and didn't get any problems.
Thank you in advance.
Cheers,
Paul
--
Wheresoever you go, go with all your heart.
--Confucius