Hi Filip,
I have figured out (for the most part) what is happening:
Using Ethereal, I determined that even though I was setting the mcast
bind address to the private adapter, traffic was still being broadcasted
on my public adapter. After some investigation into the Tomcat source
code, I determined that the server.xml cluster comments don't reflect
what the code is expecting for the bind address parameter name. The
server.xml comments say to use "mcastBindAddr" whereas the source code
is actually looking for "mcastBindAddress".
After the mcastBindAddress fix, UDP broadcasts were sent/received by
both nodes correctly. I suppose the public adapter configuration on
nodeB was set in some way to ignore UDP traffic.
I appreciate your assistance. Thank You.
-----Original Message-----
From: Filip Hanik - Dev Lists [mailto:[EMAIL PROTECTED]
Sent: Monday, March 27, 2006 11:02 AM
To: Tomcat Users List
Subject: Re: Cluster member discovery
please attach both your server.xml files, I'll take a look at them.
Filip
Parham, Clinton wrote:
Martin,
The install on nodeB is operation. I am able to open the default
Tomcat
page, "If you're seeing this page via a web browser, it means you've
setup Tomcat successfully."
Netstat lists the http(80), mcast(45564) and receiver (4001) ports.
Other ideas? This is very frustrating.
Thanks.
[Bill?? :) humor?]
-----Original Message-----
From: Martin Gainty [mailto:[EMAIL PROTECTED]
Sent: Sunday, March 26, 2006 7:37 PM
To: Tomcat Users List
Subject: Re: Cluster member discovery
Bill-
Make sure your tomcat install is operational
check whatever the default connector (catalina) port is configured to
via
netstat -a | grep CatalinaPort
if it isnt there then that Tomcat server never came up and you should
check
the logs in %CATALINA_HOME%\logs for any exceptions or errors
Martin-
----- Original Message -----
From: "Filip Hanik - Dev Lists" <[EMAIL PROTECTED]>
To: "Tomcat Users List" <users@tomcat.apache.org>
Sent: Sunday, March 26, 2006 3:06 PM
Subject: Re: Cluster member discovery
did you try to remove the bind address?
Filip
Parham, Clinton wrote:
Hello Tomcat Users!
I'm trying to setup two node clustering (nodeA & nodeB) using the
following: Windows 2003, Tomcat 5.5.16 (apache-tomcat-5.5.16.exe)
and
JDK1.5. For some inexplicable reason, I cannot get nodeB to discover
nodeA. nodeA always discovers nodeB successfully.
The two nodes are identical machines - purchased/configured at the
same
time. Tomcat and JDK were installed to the same folders and use
identical server.xml files except for bind address values. nodeA and
nodeB have dual network cards - one public, one private. To try and
figure out the problem, I turned logging on following these
instructions: http://tomcat.apache.org/tomcat-5.5-doc/logging.html
and
added org.apache.catalina.cluster set to debug.
In nodesA's (192.168.3.30) log, I see it find nodeB (192.168.3.31):
INFO Cluster-MembershipReceiver
org.apache.catalina.cluster.tcp.SimpleTcpCluster - Replication
member
added:org.apache.catalina.cluster.mcast.McastMember[tcp://192.168.3.31:4
001,catalina,192.168.3.31,4001, alive=35000]
Further down in nodeA's log, I also see it send/receive pings from
itself and also receive pings from nodeB.
Now, in nodesB's log, the story is different. I don't see anything
about
nodeA. What I do see a lot of is nodeB sending pings but never
receiving
any - not even from itself. There are no errors or warnings in
either
log file.
To confirm that multicast works between the nodes, I used the
Windows
2003 mcast.exe test utility and also ran the JGroups test:
http://www.jgroups.org/javagroupsnew/docs/newuser/node15.html. Both
were
successful.
Does anyone know what the problem is? What other information can I
provide to help troubleshoot this?
Thanks,
Clinton
Here's the Cluster section from nodeB's server.xml. It's nothing
special
- I just uncommented the cluster tags and added the local network
card
address:
<Cluster
className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
managerClassName="org.apache.catalina.cluster.session.DeltaManager"
expireSessionsOnShutdown="false"
useDirtyFlag="true"
notifyListenersOnReplication="true">
<Membership
className="org.apache.catalina.cluster.mcast.McastService"
mcastBindAddr="192.168.3.31"
mcastAddr="228.0.0.4"
mcastPort="45564"
mcastFrequency="500"
mcastDropTime="3000"/>
<Receiver
className="org.apache.catalina.cluster.tcp.ReplicationListener"
tcpListenAddress="192.168.3.31"
tcpListenPort="4001"
tcpSelectorTimeout="100"
tcpThreadCount="6"/>
<Sender
className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
replicationMode="pooled"
ackTimeout="15000"/>
<Valve
className="org.apache.catalina.cluster.tcp.ReplicationValve"
filter=".*\.gif;.*\.js;.*\.jpg;.*\.htm;.*\.html;.*\.txt;"/>
<Deployer
className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
</Cluster>
Here's truncated logging from nodeB (192.168.3.31). Notice there is
no
mention of nodeA (192.168.3.30) even though it's up and running:
INFO Thread-1 org.apache.catalina.cluster.tcp.SimpleTcpCluster -
Cluster
is about to start
INFO Thread-1 org.apache.catalina.cluster.tcp.SimpleTcpCluster -
Cluster is about to start
DEBUG Thread-1 org.apache.catalina.cluster.tcp.SimpleTcpCluster -
Invoking addValve on
StandardEngine[Catalina].StandardHost[localhost]
with class=org.apache.catalina.cluster.tcp.ReplicationValve
DEBUG Thread-1 org.apache.catalina.cluster.tcp.SimpleTcpCluster -
Invoking addValve on
StandardEngine[Catalina].StandardHost[localhost]
with class=org.apache.catalina.cluster.tcp.ReplicationValve
INFO Thread-1 org.apache.catalina.cluster.tcp.SimpleTcpCluster -
Add
Default ClusterListener at cluster localhost
INFO Thread-1 org.apache.catalina.cluster.tcp.SimpleTcpCluster -
Add
Default ClusterListener at cluster localhost
DEBUG Thread-1 org.apache.catalina.cluster.session.ClusterListener
-
add ClusterListener
[EMAIL PROTECTED]
to
[EMAIL PROTECTED]
DEBUG Thread-1 org.apache.catalina.cluster.session.ClusterListener
-
add ClusterListener
[EMAIL PROTECTED]
to
[EMAIL PROTECTED]
DEBUG Thread-1 org.apache.catalina.cluster.tcp.ClusterReceiverBase
-
Starting replication listener on address:192.168.3.31
DEBUG Thread-1 org.apache.catalina.cluster.tcp.ClusterReceiverBase
-
Starting replication listener on address:192.168.3.31
INFO Thread-1
org.apache.catalina.cluster.tcp.ReplicationTransmitter
-
Start ClusterSender at cluster Catalina:type=Cluster,host=localhost
with
name Catalina:type=ClusterSender,host=localhost
INFO Thread-1
org.apache.catalina.cluster.tcp.ReplicationTransmitter
-
Start ClusterSender at cluster Catalina:type=Cluster,host=localhost
with
name Catalina:type=ClusterSender,host=localhost
INFO Thread-1 org.apache.catalina.cluster.mcast.McastService -
Sleeping
for 2000 milliseconds to establish cluster membership
INFO Thread-1 org.apache.catalina.cluster.mcast.McastService -
Sleeping
for 2000 milliseconds to establish cluster membership
DEBUG Cluster-MembershipSender
org.apache.catalina.cluster.mcast.McastService - Mcast send ping
from
member
org.apache.catalina.cluster.mcast.McastMember[tcp://192.168.3.31:4001,ca
talina,192.168.3.31,4001, alive=100]
DEBUG Cluster-MembershipSender
org.apache.catalina.cluster.mcast.McastService - Mcast send ping
from
member
org.apache.catalina.cluster.mcast.McastMember[tcp://192.168.3.31:4001,ca
talina,192.168.3.31,4001, alive=100]
INFO Thread-1 org.apache.catalina.cluster.mcast.McastService -
membership mbean registered
(Catalina:type=ClusterMembership,host=localhost)
INFO Thread-1 org.apache.catalina.cluster.mcast.McastService -
membership mbean registered
(Catalina:type=ClusterMembership,host=localhost)
INFO Thread-1 org.apache.catalina.cluster.deploy.FarmWarDeployer -
Cluster FarmWarDeployer started.
INFO Thread-1 org.apache.catalina.cluster.deploy.FarmWarDeployer -
Cluster FarmWarDeployer started.
DEBUG Cluster-MembershipSender
org.apache.catalina.cluster.mcast.McastService - Mcast send ping
from
member
org.apache.catalina.cluster.mcast.McastMember[tcp://192.168.3.31:4001,ca
talina,192.168.3.31,4001, alive=100]
DEBUG Cluster-MembershipSender
org.apache.catalina.cluster.mcast.McastService - Mcast send ping
from
member
org.apache.catalina.cluster.mcast.McastMember[tcp://192.168.3.31:4001,ca
talina,192.168.3.31,4001, alive=100]
INFO Thread-1 org.apache.coyote.http11.Http11AprProtocol - Starting
Coyote HTTP/1.1 on http-80
INFO Thread-1 org.apache.coyote.ajp.AjpAprProtocol - Starting
Coyote
AJP/1.3 on ajp-8009
INFO Thread-1 org.apache.catalina.storeconfig.StoreLoader - Find
registry server-registry.xml at classpath resource
INFO Thread-1 org.apache.catalina.startup.Catalina - Server startup
in
2922 ms
DEBUG Cluster-MembershipSender
org.apache.catalina.cluster.mcast.McastService - Mcast send ping
from
member
org.apache.catalina.cluster.mcast.McastMember[tcp://192.168.3.31:4001,ca
talina,192.168.3.31,4001, alive=100]
DEBUG Cluster-MembershipSender
org.apache.catalina.cluster.mcast.McastService - Mcast send ping
from
member
org.apache.catalina.cluster.mcast.McastMember[tcp://192.168.3.31:4001,ca
talina,192.168.3.31,4001, alive=100]
DEBUG Cluster-MembershipSender
org.apache.catalina.cluster.mcast.McastService - Mcast send ping
from
member
org.apache.catalina.cluster.mcast.McastMember[tcp://192.168.3.31:4001,ca
talina,192.168.3.31,4001, alive=100]
DEBUG Cluster-MembershipSender
org.apache.catalina.cluster.mcast.McastService - Mcast send ping
from
member
org.apache.catalina.cluster.mcast.McastMember[tcp://192.168.3.31:4001,ca
talina,192.168.3.31,4001, alive=100]
DEBUG Cluster-MembershipSender
org.apache.catalina.cluster.mcast.McastService - Mcast send ping
from
member
org.apache.catalina.cluster.mcast.McastMember[tcp://192.168.3.31:4001,ca
talina,192.168.3.31,4001, alive=100]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]