Thank you very much for the help.
Indeed I figured out that
<distributable /> have to be in web.xml
I was not changing multicast address... it is 228.0.0.4
But I changed multicast bind address
on the first machine which have IP address 192.9.202.166 I set
mcastBindAddress="192.9.202.166"
and on the second with IP 192.9.202.21 I set
mcastBindAddress="192.9.202.21"
So the idea was the broadcast address to bind to the appropriate interface (one of the machines have more than one )

Both machines and their interfaces are set with multicasting
eth0      Link encap:Ethernet  HWaddr 00:03:25:2B:05:8C
         inet addr:192.9.202.21  Bcast:192.9.202.255  Mask:255.255.255.0
         inet6 addr: fe80::203:25ff:fe2b:58c/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:66929626 errors:0 dropped:48 overruns:0 frame:0
         TX packets:70048545 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000
         RX bytes:1201688058 (1.1 GiB)  TX bytes:3733631693 (3.4 GiB)
         Base address:0x5000 Memory:dd480000-dd4a0000
I dont know why to add route to

239.255.0.1
as it doesnt belong to any of my networks


Please help




Best regards,

Nikolay Diulgerov
Network Administrator
E-mail: [EMAIL PROTECTED]
Telephone : +33 4 89 87 77 77
Fax :       +33 4 89 87 77 00
Web: http://www.codix-france.com




Clifford Bryant wrote:
You should be able to just uncomment the <Cluster> tag in the Tomcat
/conf/server.xml file.  Then, open the ports, and do 1-3 below, and set
up multicast.  You need to enable multicast on your network.  You need
to do 1-3 on both machines.

Set the multicast address back to what it was, 228.0.0.4.  The multicast
address is needed for the multiple machines to communicate and share
session information.

The multicast address is a broadcast address.  It is a single address.
All servers on the network will listen for it.  You put the
<distributable/> tag in the web.xml of the applications that want to be
clustered.

Run these commands as root.
1. You will need to open the multicast port 45564 for UDP, and the TCP
listen port 4001 for TCP.
2. The network interfaces should be enabled for multicast.
        ifconfig eth0 multicast
3. Create a multicast route for each network interface.
        route add -host 239.255.0.1 dev eth0

You can check if multicast is working with,
        ping 239.255.0.1
You should get multiple responses back.


-----Original Message-----
From: Niki Diulgerov [mailto:[EMAIL PROTECTED] Sent: Thursday, November 15, 2007 11:08 AM
To: users@tomcat.apache.org
Subject: clustering mode in apache tomcat 5.5.25

Hello friends,
I read a lot in internet, connected to #tomcat irc channel but still no help (except one user in irc who told me in this mailing list there are very nice people).
So my problem is that I'm trying to use 2 tomcats in clustering mode.
I installed standard tomcat 5.5.25 downloaded from the official site.
The operating systems are RHEL4 and Open SuSE10.2
I have setenv.sh
JAVA_OPTS="-server -Xms512m -Xmx1024m -XX:PermSize=512m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError"
CATALINA_OPTS="-Dlogs.root=/extranet/logs -Dwas.install.root=/extranet"
JAVA_HOME=/jdk1.5.0_13
ENCODING=utf-8

Java version jdk1.5.0_13 (I tried with java 1.4 and the compat package for tomcat 5.5.25 but still the same)
I changed only server.xml file on both machines. Here is how it looks
like:

<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="node01">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
                   resourceName="UserDatabase" />
            <Host          name="localhost"
                        appBase="webapps">
<Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
                                       doClusterLog="true"
                                     clusterLogName="clusterlog"
manager.className="org.apache.catalina.cluster.session.DeltaManager"
                   manager.expireSessionsOnShutdown="false"
               manager.notifyListenersOnReplication="false"
        manager.notifySessionListenersOnReplication="false"
                            manager.sendAllSessions="false"
                        manager.sendAllSessionsSize="500"
                    manager.sendAllSessionsWaitTime="20">
                  <Membership
className="org.apache.catalina.cluster.mcast.McastService"
                                          mcastAddr="228.0.0.4"
                                   mcastBindAddress="127.0.0.1"
                                 mcastClusterDomain="d10"
                                          mcastPort="45564"
                                     mcastFrequency="1000"
                                      mcastDropTime="30000"
                                    recoveryCounter="10"
                                    recoveryEnabled="true"
recoverySleepTime="5000"/> <Receiver className="org.apache.catalina.cluster.tcp.ReplicationListener"
                                    tcpListenAddress="auto"
                                       tcpListenPort="9015"
                                  tcpSelectorTimeout="100"
                                      tcpThreadCount="6"/>
                  <Sender
className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
                                     replicationMode="fastasyncqueue"
                                      recoverTimeout="5000"
                                      recoverCounter="6"
                        doTransmitterProcessingStats="true"
                                   doProcessingStats="true"
                                      doWaitAckStats="true"
                                       queueTimeWait="true"
                                        queueDoStats="true"
                                      queueCheckLock="true"
                                          ackTimeout="15000"
                                          waitForAck="true"
                                    keepAliveTimeout="80000"
                            keepAliveMaxRequestCount="-1"/>
<Valve className="org.apache.catalina.cluster.tcp.ReplicationValve" filter=".*\.gif;.*\.js;.*\.css;.*\.png;.*\.jpeg;.*\.jpg;.*\.htm;.*\.html
;.*\.txt;"
                                    primaryIndicator="true" />
<Valve className="org.apache.catalina.cluster.session.JvmRouteBinderValve" enabled="true" /> <ClusterListener className="org.apache.catalina.cluster.session.ClusterSessionListener"
/>
<ClusterListener className="org.apache.catalina.cluster.session.JvmRouteSessionIDBinderLi stener" /> <Deployer className="org.apache.catalina.cluster.deploy.FarmWarDeployer" tempDir="${catalina.base}/war-temp" deployDir="${catalina.base}/war-deploy/" watchDir="${catalina.base}/war-listen/"
                                       watchEnabled="true"/>
                  </Cluster>
            </Host>
        </Engine>
    </Service>
</Server>

I changed only mcastBindAddress="127.0.0.1"
on both machines and replaced 127.0.0.1 with the appropriate IP address of any of these machines. everything else was the same. (Here I'm not sure if I should use the same jvmRoute on both machines)

The problem is that in the catalina.out I have
WARNING: Error receiving mcast package (errorCounter=10). Try Recovery!
java.net.SocketTimeoutException: Receive timed out
        at java.net.PlainDatagramSocketImpl.receive0(Native Method)
at java.net.PlainDatagramSocketImpl.receive(PlainDatagramSocketImpl.java:13
6)
        at java.net.DatagramSocket.receive(DatagramSocket.java:712)
at org.apache.catalina.cluster.mcast.McastServiceImpl.receive(McastServiceI
mpl.java:238)
at org.apache.catalina.cluster.mcast.McastServiceImpl$ReceiverThread.run(Mc
astServiceImpl.java:330)
Nov 15, 2007 5:22:33 PM org.apache.catalina.cluster.mcast.McastServiceImpl$RecoveryThread run INFO: Cluster membership, running recovery thread, multicasting is not functional. Nov 15, 2007 5:22:33 PM org.apache.catalina.cluster.mcast.McastServiceImpl$SenderThread run
WARNING: Sender Thread ends with errorCounter=0.
Nov 15, 2007 5:22:34 PM org.apache.catalina.cluster.mcast.McastServiceImpl$ReceiverThread run
WARNING: Receiver Thread ends with errorCounter=1.
Nov 15, 2007 5:22:35 PM org.apache.catalina.cluster.mcast.McastServiceImpl setupSocket
INFO: Setting multihome multicast interface to:/192.9.202.166
Nov 15, 2007 5:22:35 PM org.apache.catalina.cluster.mcast.McastServiceImpl setupSocket
INFO: Setting cluster mcast soTimeout to 1000
Nov 15, 2007 5:22:35 PM org.apache.catalina.cluster.mcast.McastServiceImpl$RecoveryThread run
INFO: Membership recovery was successful.
Nov 15, 2007 5:22:43 PM org.apache.catalina.cluster.deploy.WarWatcher
check
INFO: check cluster wars at /extranet/tomcat/war-listen
Nov 15, 2007 5:22:55 PM org.apache.catalina.cluster.mcast.McastServiceImpl$ReceiverThread run
WARNING: Error receiving mcast package (errorCounter=10). Try Recovery!
java.net.SocketTimeoutException: Receive timed out
        at java.net.PlainDatagramSocketImpl.receive0(Native Method)
at java.net.PlainDatagramSocketImpl.receive(PlainDatagramSocketImpl.java:13
6)
        at java.net.DatagramSocket.receive(DatagramSocket.java:712)
at org.apache.catalina.cluster.mcast.McastServiceImpl.receive(McastServiceI
mpl.java:238)
at org.apache.catalina.cluster.mcast.McastServiceImpl$ReceiverThread.run(Mc
astServiceImpl.java:330)
Nov 15, 2007 5:22:55 PM org.apache.catalina.cluster.mcast.McastServiceImpl$RecoveryThread run INFO: Cluster membership, running recovery thread, multicasting is not functional. Nov 15, 2007 5:22:55 PM org.apache.catalina.cluster.mcast.McastServiceImpl$SenderThread run
WARNING: Sender Thread ends with errorCounter=0.
Nov 15, 2007 5:22:56 PM org.apache.catalina.cluster.mcast.McastServiceImpl$ReceiverThread run
WARNING: Receiver Thread ends with errorCounter=1.
Nov 15, 2007 5:22:57 PM org.apache.catalina.cluster.mcast.McastServiceImpl setupSocket
INFO: Setting multihome multicast interface to:/192.9.202.166
Nov 15, 2007 5:22:57 PM org.apache.catalina.cluster.mcast.McastServiceImpl setupSocket
INFO: Setting cluster mcast soTimeout to 1000
Nov 15, 2007 5:22:57 PM org.apache.catalina.cluster.mcast.McastServiceImpl$RecoveryThread run
INFO: Membership recovery was successful.
Nov 15, 2007 5:23:03 PM org.apache.catalina.cluster.deploy.WarWatcher
check
INFO: check cluster wars at /extranet/tomcat/war-listen
Nov 15, 2007 5:23:17 PM org.apache.catalina.cluster.mcast.McastServiceImpl$ReceiverThread run


Please help.





---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to