Krish,

Very strange.. Is it always the last value that you store in the session that is available after failover? In other words, when both sessions are started, and you are stuck to server1.. If you add five different name value pairs to the session (prop1=a, prop2=b, prop3=c, prop4=d, prop5=e).. Now stop server1 .. and Add prop6=f to the session ..Does only prop5 and prop6 show up on server2?

Are you seeing data in the session other than prop6?

Seems that there are are several possibilities as to where the problem could happen: 1) Session data isn't being properly replicated between the nodes (believe this is independent of any mod-jk configuration)
2) Failed over request is not finding the original session..
3) Failed over request finds the session but not all of the session data


I do see a few minor differences in our configs

e.g.
worker.loadbalancer.balanced_workers -vs-
worker.loadbalancer.balance_workers

I don't use the following properties:
worker.loadbalancer.sticky_session_force (hmm, may want to remove this and see if it has any affect)
worker.maintain ,socket_timeout, socket_keepalive

Will send you my full configuration.

-Dave-

Krishnakumar B wrote:
Hi Dave,

Thanks for ur note. I am able to get this to work but still face one
issue.I put three values in session in server1. I shutdown server1.
When i refresh the browser i get the page from server2 but it has only
the last value.  I am using the tomcat cluster example [
servlets-examples-cluster ]

I dont get the No engine jvmRoute attribute configured WARN messages.

I have updated the config.xml.
   <gbean name="TomcatEngine">
     <attribute name="initParams">name=Geronimo
    jvmRoute=node2</attribute>
   </gbean>
and
   <gbean name="TomcatEngine">
     <attribute name="initParams">name=Geronimo
    jvmRoute=node1</attribute>
   </gbean>


I have put IPs in plan.
I get the same messages as u have listed in the mail

My workers.properties

worker.list=loadbalancer,status
worker.maintain=60

worker.node1.type=ajp13
worker.node1.host=yy.yy.yy.yy
worker.node1.port=8009
worker.node1.socket_timeout=60
worker.node1.socket_keepalive=true
worker.node1.lbfactor=1

worker.node2.type=ajp13
worker.node2.host=xx.xx.xx.xx
worker.node2.port=8009
worker.node2.socket_timeout=60
worker.node2.socket_keepalive=true
worker.node2.lbfactor=1

worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=node1,node2
worker.loadbalancer.sticky_session=1
worker.loadbalancer.sticky_session_force=0
worker.status.type=status

and

httpd.conf ( Added these lines at end of existing httpd.conf )

LoadModule jk_module modules/mod_jk.so

#
# The following can be added anywhere after the above LoadModule statement.
#
<IfModule mod_jk.c>
   JkWorkersFile       conf/workers.properties
   JkLogFile           logs/mod_jk.log
   JkLogLevel          info
   JkLogStampFormat    "[%a %b %d %H:%M:%S %Y] "
JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
   JkRequestLogFormat  "%w %V %T"

   <Location /*/WEB-INF/*>
       AllowOverride None
       deny from all
   </Location>

   <Location /*/META-INF/*>
       AllowOverride None
       deny from all
   </Location>

   # forward ALL web requests to our mod_jk loadbalancer workers
   JkMount /* loadbalancer

</IfModule>

Thanks for ur help.

Regards
Krish


n 7/13/06, Dave Colasurdo <[EMAIL PROTECTED]> wrote:
Ahh, just remembered one other issue I encountered, extra whitespace
after the IP addresses in config.xml seemed to mess things up. You
should also make sure that is ok in your copy..

-Dave-

Dave Colasurdo wrote:
> Also, if you are using your own application .. Do you have the webapp
> marked as distributable in web.xml?
>
> -Dave-
>
> Dave Colasurdo wrote:
>> Krish,
>>
>>   I downloaded fresh copies of G1.1 and tried clustering again.  I did
>> not see the behavior you are describing. Failover of session data
>> worked as expected.  I suspect the "No engine jvmRoute attribute
>> configured" error in your run is significant.  Perhaps this is somehow
>> misconfigured... Did you stop the server before updating config.xml?
>> Are the IP addresses correct in the each deployment plan and agree
>> with the settings in the webserver configuration?
>>
>> Are you hitting the webserver port 80 and not 8080 ..
>> http://YourHost/servlets-examples-cluster
>>
>> Please attach your config.xml files and deployment plans and webserver
>> config.
>>
>> BTW, Here are the logs from my run:
>>
>> Replaced node1 IP address with xx.xx.xx.xx in logs below
>> Replaced node2 IP address with yy.yy.yy.yy in logs below
>>
>>
>> *1)* Starting the first node (node 98 - aka server1)
>>
>> [snip]
>> [*********************> ] 93%  13s Starting
>> geronimo/servlets-examp...14:18:34,5
>> 46 INFO  [SimpleTcpCluster] Cluster is about to start
>> 14:18:34,562 INFO  [SimpleTcpCluster] Add Default ClusterListener at
>> cluster /servlets-examples-cluster
>> 14:18:34,578 INFO  [ReplicationTransmitter] Start ClusterSender at
>> cluster geronimo:type=Cluster with name geronimo:type=ClusterSender
>> 14:18:34,593 INFO  [McastService] Setting multihome multicast
>> interface to:/xx.xx.xx.xx
>> 14:18:34,593 INFO  [McastService] Sleeping for 2000 secs to establish
>> cluster membership
>> [*********************> ] 93%  15s Starting
>> geronimo/servlets-examp...14:18:36,609 INFO  [McastService] membership
>> mbean registered (geronimo:type=ClusterMembership)
>> 14:18:36,609 INFO  [JvmRouteBinderValve] JvmRouteBinderValve started
>> [*********************> ] 93%  16s Starting
>> geronimo/servlets-examp...14:18:36,984 INFO  [DeltaManager] Register
>> manager /servlets-examples-cluster to cluster element unknown with
>> name /servlets-examples-cluster
>> 14:18:36,984 INFO  [DeltaManager] Starting clustering manager at
>> /servlets-examples-cluster
>> 14:18:36,984 INFO  [DeltaManager] Manager
>> [/servlets-examples-cluster]: skipping state transfer. No members
>> active in cluster group.
>> [***********************] 100%  16s Startup complete
>>
>> [snip]
>>
>> *2)* Starting the second node (node 99 - aka server 2)
>>
>> [snip]
>> Starting Geronimo Application Server v1.1
>> [*********************> ] 93%  22s Starting
>> geronimo/servlets-examp...14:19:27,220 INFO  [SimpleTcpCluster]
>> Cluster is about to start
>> 14:19:27,236 INFO  [SimpleTcpCluster] Add Default ClusterListener at
>> cluster /servlets-examples-cluster
>> 14:19:27,267 INFO  [ReplicationTransmitter] Start ClusterSender at
>> cluster geronimo:type=Cluster with name geronimo:type=ClusterSender
>> 14:19:27,283 INFO  [McastService] Setting multihome multicast
>> interface to:/yy.yy.yy.yy
>> 14:19:27,298 INFO  [McastService] Sleeping for 2000 secs to establish
>> cluster membership
>> [*********************> ] 93%  23s Starting
>> geronimo/servlets-examp...14:19:27,454 INFO  [SimpleTcpCluster]
>> Replication member
>> added:org.apache.catalina.cluster.mcast.McastMember[tcp://xx.xx.xx.xx:4001,catalina,xx.xx.xx.xx,4001,
>> alive=50500]
>> [*********************> ] 93%  24s Starting
>> geronimo/servlets-examp...14:19:29,2
>> 98 INFO  [McastService] membership mbean registered
>> (geronimo:type=ClusterMembership)
>> 14:19:29,314 INFO  [JvmRouteBinderValve] JvmRouteBinderValve started
>> 14:19:29,423 INFO  [DeltaManager] Register manager
>> /servlets-examples-cluster to cluster element unknown with name
>> /servlets-examples-cluster
>> 14:19:29,423 INFO  [DeltaManager] Starting clustering manager at
>> /servlets-examples-cluster
>> [*********************> ] 93%  25s Starting
>> geronimo/servlets-examp...14:19:29,454 WARN  [DeltaManager] Manager
>> [/servlets-examples-cluster], requesting session state from
>> org.apache.catalina.cluster.mcast.McastMember[tcp://xx.xx.xx.xx:4001,catalina,xx.xx.xx.xx,4001,
>> alive=52000]. This operation will timeout if no session state has been
>> received within 60 seconds.
>> [*********************> ] 93%  25s Starting
>> geronimo/servlets-examp...14:19:30,001 INFO  [DeltaManager] Manager
>> [/servlets-examples-cluster]; session state send
>>  at 7/12/06 2:19 PM received in 578 ms.
>> [***********************] 100%  25s Startup complete
>> [snip]
>>
>>
>> *3)* Added to Node1 console log when node2 is started
>>
>> 14:19:28,953 INFO  [SimpleTcpCluster] Replication member
>> added:org.apache.catalina.cluster.mcast.McastMember[tcp://yy.yy.yy.yy:4001,catalina,yy.yy.yy.yy,4001,
>> alive=0]
>>
>> *4)* Nothing is reflected in the console log when when adding values
>> to the session via the servlet.
>>
>> *5)* This gets added to node2 console when node1 is stopped..
>>
>> 14:24:40,720 INFO  [SimpleTcpCluster] Received member
>> disappeared:org.apache.caalina.cluster.mcast.McastMember[tcp://xx.xx.xx.xx:4001,catalina,xx.xx.xx.xx,4
>>
>> 01, alive=360688]
>>
>> *6)* Failover of session data works as expected..
>>
>>
>> -Dave-
>>
>> Krishnakumar B wrote:
>>> hi Dave,
>>>
>>> Thanks for ur note.
>>>
>>> I have done these checks. I get these messages in second cluster
>>> member where failover occurs.
>>>
>>> 14:53:21,003 INFO  [DeltaManager] Manager
>>> [/servlets-examples-cluster]: skipping state transfer. No members
>>> active in cluster group.
>>> 15:10:34,700 WARN  [JvmRouteBinderValve] No engine jvmRoute attribute
>>> configured
>>> 15:10:34,720 WARN  [JvmRouteBinderValve] No engine jvmRoute attribute
>>> configured
>>>
>>> Does this mean something is wrong? I get one session value failover to
>>> second server. All cluster members are active.
>>>
>>> Regards
>>> Krish
>>>
>>> I have configured jvmRoute
>>> On 7/11/06, Dave Colasurdo <[EMAIL PROTECTED]> wrote:
>>>> Krish,
>>>>
>>>>  A few things to check..
>>>>
>>>> 1) jvmRoute is unique for each node
>>>> 2) The value used in jvmRoute agrees with the value set in the mod-jk
>>>> configuration (e.g. jvmRoute=node1, jvmRoute=node2,  and
>>>> worker.loadbalancer.balance_workers=node1,node2,
>>>> worker.node1.port=8009,
>>>> etc.)
>>>> 3) Deployment plan for each node has the correct IP address for each
>>>> node (in 2 spots in the xml)
>>>> 4) You are using the most recent deployment *5.5.15* deployment plan
>>>> that includes JVMRouteBinderValve...  Latest plan and instructions
>>>> available at: http://cwiki.apache.org/GMOxDOC11/clustering.html
>>>> 5) Verify that both machines are truly on the same subnet..  Both
>>>> machines should use the same subnet mask. The network portion of the
>>>> addresses should be identical when the subnet mask is bitwise ANDed
>>>> with
>>>> each of the individual IP addresses.
>>>> 6) You are using the same browser instance for the whole test. Clear
>>>> the cookie cache in the browser before the test.
>>>>
>>>> -Dave-
>>>>
>>>>
>>>> Krishnakumar B wrote:
>>>> > hi,
>>>> >
>>>> > Have set the required properties in app, jvmRoute etc..
>>>> >
>>>> > The log shows this
>>>> >
>>>> > 16:46:03,810 INFO [JvmRouteBinderValve] JvmRouteBinderValve started
>>>> > 16:46:04,175 INFO  [DeltaManager] Register manager
>>>> > /servlet-examples-cluster to cluster element unknown with name
>>>> > /servlet-examples-cluster
>>>> > 16:46:04,176 INFO  [DeltaManager] Starting clustering manager at
>>>> > /servlet-examples-cluster
>>>> > 16:46:04,176 INFO  [DeltaManager] Manager
>>>> [/servlet-examples-cluster]:
>>>> > skipping state transfer. No members active in cluster group.
>>>> >
>>>> > Does this message mean something is not correct.
>>>> > 16:46:04,176 INFO  [DeltaManager] Manager
>>>> [/servlet-examples-cluster]:
>>>> > skipping state transfer. No members active in cluster group.
>>>> >
>>>> > I still get only 1 value replicated.
>>>> >
>>>> > Regards
>>>> > Krish
>>>> >
>>>> >
>>>> > On 7/10/06, Santosh Koti <[EMAIL PROTECTED]> wrote:
>>>> >>
>>>> >>
>>>> >> Hi Krishna,
>>>> >>
>>>> >> Well , can u do this way:
>>>> >>
>>>> >> 1) Stop both ur servers
>>>> >> 2) Start server server1
>>>> >> 3) Aftter server server1 is up, start ur server 2
>>>> >> 4) in ur server2 startup console, u should something like
>>>> >> deltamanager[/contextroot]...
>>>> >>
>>>> >> 5)Chk ur app...?
>>>> >> 6) Have u set jvmroute in config.xml of server2..?
>>>> >>
>>>> >> PS: U shd not get smething like jvmRoute2 bind /whatever else...?!!
>>>> >>
>>>> >>
>>>> >>
>>>> >> Thanks,
>>>> >> Santosh.
>>>> >> "Don't talk about yourself; it will be done when you leave. "
>>>> >>
>>>> >>
>>>> >> -----Original Message-----
>>>> >> From: Krishnakumar B [mailto:[EMAIL PROTECTED]
>>>> >> Sent: Monday, July 10, 2006 3:55 PM
>>>> >> To: [email protected]
>>>> >> Subject: Geronimo clustering
>>>> >>
>>>> >> Hi,
>>>> >>
>>>> >> I am trying out geronimo clustering example. I seem to have a
>>>> problem
>>>> >> with Session Failover.
>>>> >>
>>>> >> I am using Apache HTTP server 2.0.58 and mod_jk 1.2.15 and
>>>> geronimo 1.1
>>>> >>
>>>> >> I create two session variables in server 1 - server1-1 = 1 &
>>>> server1-2 =
>>>> >> 2
>>>> >> I stop server1. Only server1-2 = 2 replicated in server 2.
>>>> >> Now i add a new variable in server2 server2-1 = 1
>>>> >> Now i start server1
>>>> >> Now i stop server2
>>>> >> I should have server1-1=1, server1-2=2 and server2-1=1 in server1
>>>> >> Instead i have only server2-1=1 in server1
>>>> >>
>>>> >> I am not sure if i am doing something wrong. I have set jvmRoute in >>>> >> config.xml, given correct IP address in cluster application plan and
>>>> >> setup workers.properties.
>>>> >>
>>>> >> I get these messages in server2
>>>> >> 15:38:37,452 WARN  [JvmRouteBinderValve] No engine jvmRoute
>>>> attribute
>>>> >> configured!
>>>> >> and
>>>> >> 15:30:57,791 INFO  [DeltaManager] Manager
>>>> >> [/servlets-examples-cluster]: skipping state transfer. No members
>>>> >> active in cluster group.
>>>> >> though both members of cluster are up and i am able to ping both
>>>> >> machines. there are in same subnet.
>>>> >>
>>>> >> Thanks for any pointers...
>>>> >>
>>>> >> Regards
>>>> >> Krish
>>>> >>
>>>> >> **************** CAUTION - Disclaimer *****************
>>>> >> This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION
>>>> intended
>>>> >> solely for the use of the addressee(s). If you are not the intended
>>>> >> recipient, please notify the sender by e-mail and delete the
>>>> original
>>>> >> message. Further, you are not to copy, disclose, or distribute this >>>> >> e-mail or its contents to any other person and any such actions are >>>> >> unlawful. This e-mail may contain viruses. Infosys has taken every
>>>> >> reasonable precaution to minimize this risk, but is not liable
>>>> for any
>>>> >> damage you may sustain as a result of any virus in this e-mail. You >>>> >> should carry out your own virus checks before opening the e-mail or
>>>> >> attachment. Infosys reserves the right to monitor and review the
>>>> >> content of all messages sent to or from this e-mail address.
>>>> Messages
>>>> >> sent to or from this e-mail address may be stored on the Infosys
>>>> >> e-mail system.
>>>> >> ***INFOSYS******** End of Disclaimer ********INFOSYS***
>>>> >>
>>>> >
>>>> >
>>>>
>>>
>>>
>>
>>
>
>



Reply via email to