[mod_cluster-dev] Failover failed

Bela Ban bela at jboss.com
Mon Dec 15 09:25:03 EST 2008


First off, shouldn't we set the maxThreads in server.xml in the AJP 
connector to a higher value that the (default I think) value of 40 ? The 
demo creates 80 clients and if we have only 1 node up and running, it 
has to serve 80 connections !

Secondly, why is load-demo.war/WEB-INF/web.xml not marked as 
<distributable/> ?

Then, I ran 2 experiments and they didn't behave as I expected them. Can 
you confirm/reject my assumptions ?

#1

    * Run httpd, then only node1. The only change I made from the
      default is to set maxThreads=100 in the AJP connector, and to use
      SimpleLoadbalanceFactorPolicy
    * Run the demo app with 80 clients
    * You'll see that node1 was serving 80 sessions
    * Start node2, keep the demo running
    * My expectation is that now node1's sessions will go down to 40 and
      node will serve roughly 40 sessions
    * Result: node2 picked up 46 sessions, and node1 went down to 34. I
      waited for the session life timeout (120 secs), but the result was
      still the same. Question: why didn't both nodes serve 40 sessions
      each ?
    * Update: the # of sessions in node1 and node2 got closer after some
      time, I guess my session life of 120 secs was the reason for this !
    * Update 2: I see that with a session life of 10, node1 and node2
      take turns at allocating new sessions, sometimes node1 is on top,
      sometimes node2, but on average both nodes serve 40 sessions !
      Great ! Disregard this first item !


#2

    * Start httpd
    * Start node1
    * Start node2
    * Start the demo with 80 clients
    * Observer the same as above: node1 serves roughly 40 sessions and
      so does node2
    * Kill node2
    * Now I have 80 failed clients and 0 active clients !
    * If I call Server.shutdown() on node2 (via JMX), then node1 serves
      40 sessions. But why does node1 not pick up the other 40 sessions
      from left node2 ? Is this the client, which simply terminates
      threads which got a 500 ?
    * I guess we don't send a DISABLE-NODE, STOP-SERVER or DISABLE-APP
      to httpd when we kill a server ? Can we do this, e.g. by adding a
      shutdown hook ? Or can I at least try this out through the command
      line ? What's the recommended way of doing this currently (JMX
      console) ?



-- 
Bela Ban
Lead JGroups / Clustering Team
JBoss - a division of Red Hat




More information about the mod_cluster-dev mailing list