Thank you very much for the toolkit ;) My feeling was also on my multicast support. But i' ve read more documentation for my Linux and i think that my servers support MULTICAST like explaned on my first message (compile kernel support and add route + test with tcpdump)
So this toolkit seems confirme the fact that my servers support multicast. When i test on agnes with target ovea-inspiron i've: java -cp tomcat-replication.jar MCaster 224.0.0.1 45564 ovea-inspiron Usage MCaster [address port message] BEGIN TO RECEIVE SENT:ovea-inspiron1 RECEIVED:ovea-inspiron1 FROM /192.168.2.102:45564 SENT:ovea-inspiron2 BEGIN TO RECEIVE RECEIVED:(gtcp://192.168.2.103:400cluster1 FROM /192.168.2.103:45564 SENT:ovea-inspiron3 BEGIN TO RECEIVE RECEIVED:(ftcp://192.168.2.102:400catalina FROM /192.168.2.102:45564 SENT:ovea-inspiron4 BEGIN TO RECEIVE RECEIVED:(gtcp://192.168.2.103:400cluster1 FROM /192.168.2.103:45564 And when i test on ovea-inspiron with target agnes i've: java -cp tomcat-replication.jar MCaster 224.0.0.1 <http://228.1.2.3/> 45566 agnes Usage MCaster [address port message] BEGIN TO RECEIVE SENT:agnes1 RECEIVED:agnes1 FROM /192.168.2.103:45566 SENT:agnes2 BEGIN TO RECEIVE RECEIVED:agnes2 FROM /192.168.2.103:45566 SENT:agnes3 BEGIN TO RECEIVE RECEIVED:agnes3 FROM /192.168.2.103:45566 SENT:agnes4 BEGIN TO RECEIVE RECEIVED:agnes4 FROM /192.168.2.103:45566 SENT:agnes5 BEGIN TO RECEIVE RECEIVED:agnes5 FROM /192.168.2.103:45566 SENT:agnes6 BEGIN TO RECEIVE RECEIVED:agnes6 FROM /192.168.2.103:45566 SENT:agnes7 BEGIN TO RECEIVE RECEIVED:agnes7 FROM /192.168.2.103:45566 So it's not a multicast probleme but most a configuration probleme. ovea-inspiron sent is ok but the received is empty ? Some suggestion(s) ? Thank's for the progress On 2/15/06, Filip Hanik - Dev Lists <[EMAIL PROTECTED]> wrote: > > >1) Clustering need sticky_session=true and is only design for > failover (see servlet spec). > > Not true for Tomcat, using replicationMode="pooled" and > waitForAck="true", you can do round robin non sticky load balancing as > long as you don't have more than one thread accessing the session at any > point in time. > > >INFO: Manager [/cluster-1.0-SNAPSHOT]: skipping state transfer. No > members active in cluster group. > > yes, your multicast isn't working, or it should have said that you had a > member. > Take a look at the bottom of the page and run the MCaster test included > in a super old version of Tomcat 4 clustering. > http://people.apache.org/~fhanik/ > > On multihomed hosts, it can get a little tricky to get multicasting > working and you might have to setup some routes to help. Check with your > sysadmin. > > Filip > > > > Peter Rossbach wrote: > > Hey, > > > > 1) Clustering need sticky_session=true and is only design for > > failover (see servlet spec). > > 2) Are your sure that MULTICAST is enabled at eth0? > > > > regards > > Peter > > [EMAIL PROTECTED] > > > > > > > > Am 15.02.2006 um 02:26 schrieb David Avenante: > > > >> Hi, > >> > >> I' ve try to use Tomcat 5.5.15 in cluster mod. And after some work on > >> configuration and test > >> i seems to be on limit of my all possibilities ;) > >> > >> I try to use two tomcat in cluster with apache web server and mod_jk as > >> connector. > >> > >> my Apache configuration look like : > >> > >> > >> # workers.properties > >> > >> ps=/ > >> > >> # List the workers name > >> worker.list=loadbalancer > >> > >> # ---------------- > >> # First worker > >> # ---------------- > >> worker.node01.port=8009 > >> worker.node01.host=agnes > >> worker.node01.type=ajp13 > >> worker.node01.lbfactor=1 > >> #worker.node01.domain=cluster1 > >> # ---------------- > >> # Second worker > >> # ---------------- > >> worker.node02.port=9009 > >> worker.node02.host=ovea-inspiron > >> worker.node02.type=ajp13 > >> worker.node02.lbfactor=1 > >> #worker.node02.domain=cluster1 > >> # ---------------------- > >> # Load Balancer worker > >> # ---------------------- > >> worker.loadbalancer.type=lb > >> worker.loadbalancer.sticky_session=false > >> worker.loadbalancer.balanced_workers=node01,node02 > >> > >> As you can see i use two server ('agnes' IP : 192.168.2.102 and > >> 'ovea-inspiron' IP : 192.168.2.103) > >> I' ve coded a little aplication who read un file and create a > >> sessions if > >> session not exist. > >> > >> If i use the system in mod load balancing (with no cluster mod > activate) > >> all is great (my config is of course > >> worker.loadbalancer.sticky_session=true > >> ) > >> > >> So system run with session affinitu but the two server are accessible > ;) > >> > >> Now i try to configure as cluster mode with session replication > >> (my config is now worker.loadbalancer.sticky_session=3Dfalse) > >> > >> I configure my to server.xml like that : > >> agnes (IP : 192.168.2.102) > >> > >> <Server port="8005" 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="8080" maxHttpHeaderSize="8192" > >> maxThreads="150" minSpareThreads="25" > >> maxSpareThreads="75" > >> enableLookups="false" redirectPort="8443" > >> acceptCount="100" > >> connectionTimeout="20000" > >> disableUploadTimeout="true" > >> /> > >> > >> <Connector port="8009" enableLookups="false" > >> redirectPort="8443" protocol="AJP/1.3" /> > >> > >> <Engine name="Catalina" defaultHost="localhost" jvmRoute="node01" > > >> > >> <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.cluster.tcp.SimpleTcpCluster" > >> doClusterLog="true" > >> clusterLogName="clusterlog" > >> manager.className=" > >> org.apache.catalina.cluster.session.DeltaManager" > >> manager.expireSessionsOnShutdown="false" > >> manager.notifyListenersOnReplication="true" > >> manager.notifySessionListenersOnReplication="true" > >> manager.sendAllSessions="true" > >> manager.sendAllSessionsSize="500" > >> manager.sendAllSessionsWaitTime="20"> > >> > >> <Membership className=" > >> org.apache.catalina.cluster.mcast.McastService" > >> mcastBindAddress="192.168.2.102" > >> mcastAddr="224.0.0.1" > >> mcastPort="45564" > >> mcastFrequency="1000" > >> mcastDropTime="30000"/> > >> > >> <Receiver className=" > >> org.apache.catalina.cluster.tcp.ReplicationListener" > >> tcpListenAddress="192.168.2.102" > >> tcpListenPort="4000" > >> tcpSelectorTimeout="100" > >> tcpThreadCount="6" /> > >> > >> <Sender className=" > >> org.apache.catalina.cluster.tcp.ReplicationTransmitter" > >> replicationMode="fastasyncqueue" > >> doTransmitterProcessingStats="true" > >> doProcessingStats="true" > >> doWaitAckStats="true" > >> queueTimeWait="true" > >> queueDoStats="true" > >> queueCheckLock="true" > >> ackTimeout="15000" > >> waitForAck="true" > >> keepAliveTimeout="80000" > >> keepAliveMaxRequestCount="-1" /> > >> > >> </Host> > >> </Engine> > >> </Service> > >> </Server> > >> > >> > >> ovea-inspiron (IP : 192.168.2.103) > >> <Server port="9005" 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="9080" maxHttpHeaderSize="8192" > >> maxThreads="150" minSpareThreads="25" > >> maxSpareThreads="75" > >> enableLookups="false" redirectPort="8443" > >> acceptCount="100" > >> connectionTimeout="20000" > >> disableUploadTimeout="true" > >> /> > >> > >> <Connector port="9009" enableLookups="false" > >> redirectPort="8443" protocol="AJP/1.3" /> > >> > >> <Engine name="Catalina" defaultHost="localhost" jvmRoute="node02" > > >> <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.cluster.tcp.SimpleTcpCluster" > >> doClusterLog="true" > >> clusterLogName="clusterlog" > >> manager.className=" > >> org.apache.catalina.cluster.session.DeltaManager" > >> manager.expireSessionsOnShutdown="false" > >> manager.notifyListenersOnReplication="true" > >> manager.notifySessionListenersOnReplication="true" > >> manager.sendAllSessions="true" > >> manager.sendAllSessionsSize="500" > >> manager.sendAllSessionsWaitTime="20"> > >> > >> <Membership className=" > >> org.apache.catalina.cluster.mcast.McastService" > >> mcastBindAddress="192.168.2.103" > >> mcastAddr="224.0.0.1" > >> mcastPort="45564" > >> mcastFrequency="1000" > >> mcastDropTime="30000"/> > >> > >> <Receiver className=" > >> org.apache.catalina.cluster.tcp.ReplicationListener" > >> tcpListenAddress="192.168.2.103" > >> tcpListenPort="4000" > >> tcpSelectorTimeout="100" > >> tcpThreadCount="6" /> > >> > >> <Sender className=" > >> org.apache.catalina.cluster.tcp.ReplicationTransmitter" > >> replicationMode="fastasyncqueue" > >> doTransmitterProcessingStats="true" > >> doProcessingStats="true" > >> doWaitAckStats="true" > >> queueTimeWait="true" > >> queueDoStats="true" > >> queueCheckLock="true" > >> ackTimeout="15000" > >> waitForAck="true" > >> keepAliveTimeout="80000" > >> keepAliveMaxRequestCount="-1" /> > >> > >> </Host> > >> </Engine> > >> </Service> > >> </Server> > >> > >> > >> I'm user linux so i've compiled my kernel with multicat kernel option > >> I add the rout like rooute add -host 224.0.0.1 dev eth0 > >> > >> N.B : why 224.0.0.1 => > >> http://www.iana.org/assignments/multicast-addresses > >> > >> So route is : > >> ALL-SYSTEMS.MCA * 255.255.255.255 UH 0 0 0 eth0 > >> 192.168.2.0 * 255.255.255.0 U 0 > >> 0 0 > >> eth0 > >> loopback * 255.0.0.0 U 0 0 > >> 0 lo > >> default . 0.0.0.0 UG 0 0 > >> 0 eth0 > >> > >> now i start the two tomcat with the same application in webapp > >> directories > >> with tcpdump i verify the multicasting btewen my server .. so : > >> > >> 19:39:17.809978 IP 192.168.2.102.45564 > > >> all-systems.mcast.net.45564:UDP, > >> length 56 > >> 19:39:18.546034 IP ovea-inspiron.45564 > > >> all-systems.mcast.net.45564:UDP, > >> length 56 > >> 19:39:18.814418 IP 192.168.2.102.45564 > all-systems.mcast.net.45564UDP > , > >> length 56 > >> 19:39:19.790470 IP ovea-inspiron.45564 > > >> all-systems.mcast.net.45564:UDP, > >> length 56 > >> 19:39:19.818691 IP 192.168.2.102.45564 > > >> all-systems.mcast.net.45564:UDP, > >> length 56 > >> 19:39:20.826650 IP 192.168.2.102.45564 > > >> all-systems.mcast.net.45564:UDP, > >> length 56 > >> 19:39:20.943933 IP ovea-inspiron.45564 > > >> all-systems.mcast.net.45564:UDP, > >> length 56 > >> 19:39:21.806813 arp who-has . tell 192.168.2.102 > >> 19:39:21.806972 arp reply . is-at 00:04:e2:b6:65:0a (oui Unknown) > >> 19:39:21.831048 IP 192.168.2.102.45564 > > >> all-systems.mcast.net.45564:UDP, > >> length 56 > >> 19:39:22.164812 IP ovea-inspiron.45564 > > >> all-systems.mcast.net.45564:UDP, > >> length 56 > >> 19:39:22.835240 IP 192.168.2.102.45564 > > >> all-systems.mcast.net.45564:UDP, > >> length 56 > >> > >> So all semms to be OK but i've > >> > >> Feb 14, 2006 6:33:26 PM > >> org.apache.catalina.cluster.tcp.SimpleTcpCluster st > >> art > >> INFO: Cluster is about to start > >> Feb 14, 2006 6:33:26 PM > >> > org.apache.catalina.cluster.tcp.SimpleTcpClustercreateDefaultClusterValves > >> > >> INFO: Add Default ClusterValves at cluster localhost > >> Feb 14, 2006 6:33:26 PM > >> > org.apache.catalina.cluster.tcp.SimpleTcpClustercreateDefaultClusterListener > >> > >> INFO: Add Default ClusterListener at cluster localhost > >> Feb 14, 2006 6:33:26 PM > >> org.apache.catalina.cluster.tcp.ReplicationTransmitter start > >> INFO: Start ClusterSender at cluster > >> Catalina:type=3DCluster,host=3Dlocalhost > >> with name Catalina:type=3DClusterSender,host=3Dlocalhost > >> Feb 14, 2006 6:33:26 PM > >> org.apache.catalina.cluster.mcast.McastServiceImplsetupSocket > >> INFO: Setting multihome multicast interface to:/192.168.2.102 > >> Feb 14, 2006 6:33:26 PM > >> org.apache.catalina.cluster.mcast.McastService start > >> INFO: Sleeping for 4000 secs to establish cluster membership > >> Feb 14, 2006 6:33:30 PM > >> org.apache.catalina.cluster.mcast.McastServiceregisterMBean > >> INFO: membership mbean registered > >> (Catalina:type=3DClusterMembership,host=3Dlocalhost) > >> Feb 14, 2006 6:33:31 PM org.apache.catalina.startup.HostConfigdeployWAR > >> INFO: Deploying web application archive cluster-1.0-SNAPSHOT.war > >> Feb 14, 2006 6:33:31 PM > >> org.apache.catalina.cluster.session.DeltaManager st > >> art > >> INFO: Register manager /cluster-1.0-SNAPSHOT to cluster element Host > >> with > >> name localhost > >> Feb 14, 2006 6:33:31 PM > >> org.apache.catalina.cluster.session.DeltaManager st > >> art > >> INFO: Starting clustering manager at /cluster-1.0-SNAPSHOT > >> Feb 14, 2006 6:33:31 PM > >> org.apache.catalina.cluster.session.DeltaManagergetAllClusterSessions > >> INFO: Manager [/cluster-1.0-SNAPSHOT]: skipping state transfer. No > >> members > >> active in cluster group. > >> > >> As you can see in the last line cluster member are not found !!!! > >> > >> What's the hell ;) > >> > >> When i test my application i've always the sequences : > >> > >> This page is rendered on server : *Cluster Node - 01 (One) New > >> session is > >> created with saved value ....UserId : 123456 > >> This page is rendered on server : *Cluster Node - 02 (Two) New > >> session is > >> created with saved value ....UserId : 123456 > >> This page is rendered on server : *Cluster Node - 01 (One) New > >> session is > >> created with saved value ....UserId : 123456 > >> > >> So the request is well balanced but a new session is alway created > !!!!! > >> > >> Some ideas ... > >> > >> Thank you guys > > > > > > --------------------------------------------------------------------- > > 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] > >