tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From David Avenante <d.avena...@gmail.com>
Subject Re: Tomcat 5.5.15 Clustering ?
Date Wed, 15 Feb 2006 15:52:36 GMT
I try it and the multicast seems OK ?

On 2/15/06, Filip Hanik - Dev Lists <devlists@hanik.com> wrote:
>
> It is a multicast problem, your second box is not receiving any
> multicast messages, only from itself.
>
> To run this test properly, you will need to shutdown your tomcats, then
> run MCaster on both machines at the same time,
> if both machines are not receiving messages from each other (like your
> example below) then you have a multicast problem
>
> Filip
>
>
> David Avenante wrote:
> > 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 <devlists@hanik.com> 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
> >>> pr@objektpark.de
> >>>
> >>>
> >>>
> >>> 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: users-unsubscribe@tomcat.apache.org
> >>> For additional commands, e-mail: users-help@tomcat.apache.org
> >>>
> >>>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> >> For additional commands, e-mail: users-help@tomcat.apache.org
> >>
> >>
> >>
> >
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message