I'm setting up a clustered singleton MDB.  Only a single MDB should exist on 
the cluster.  When the node the MDB is on fails, it should be activated on 
another node (i.e. startDelivery is called on the invoker-binding-proxy for the 
MDB).  The MDB is set up as Adrian recommended in 
http://www.jboss.org/index.html?module=bb&op=viewtopic&t=41489 and the MDB 
activator hasingleton MBean is set up per 
http://www.jboss.org/index.html?module=bb&op=viewtopic&t=55794. 

The failover works fine, eventually.  It seems to consistently take over 1 
minute for the singleton MBean to come up on another node once the master node 
fails.  I'm working on a 2 node cluster on different boxes, running 3.2.6 on 
windows (loopback is set to true, though this doesn't make any difference in 
this case).  Here's a snippet from the log files showing the time gap:

  | 2005-02-17 16:54:00,959 DEBUG [org.jboss.deployment.MainDeployer] Begin 
deployment start file:/C:/pf/jboss-3.2.6/server/all//deploy-hasingleton
  | 2005-02-17 16:54:00,959 DEBUG [org.jboss.deployment.MainDeployer] Begin 
deployment start 
file:/C:/pf/jboss-3.2.6/server/all/deploy-hasingleton/MdbActivator.sar
  | 2005-02-17 16:54:00,959 DEBUG [org.jboss.deployment.SARDeployer] Deploying 
SAR, start step: url 
file:/C:/pf/jboss-3.2.6/server/all/deploy-hasingleton/MdbActivator.sar
  | 2005-02-17 16:54:00,959 DEBUG [org.jboss.system.ServiceController] starting 
service test.hasingletonmdb:service=MdbActivator
  | 2005-02-17 16:54:00,959 DEBUG 
[com.gweiss.test.jboss.hasingletonmdb.MdbActivator] Starting 
test.hasingletonmdb:service=MdbActivator
  | 2005-02-17 16:54:00,959 DEBUG 
[com.gweiss.test.jboss.hasingletonmdb.MdbActivator] Started 
test.hasingletonmdb:service=MdbActivator
  | 2005-02-17 16:54:00,959 DEBUG 
[org.jboss.management.j2ee.LocalJBossServerDomain] handleNotification: 
javax.management.Notification[source=jboss.system:service=ServiceController,type=
 
org.jboss.system.ServiceMBean.start,sequenceNumber=175,timeStamp=1108677240959,message=null,userData=test.hasingletonmdb:service=MdbActivator]
  | 2005-02-17 16:54:00,959 DEBUG [org.jboss.system.ServiceController] Starting 
dependent components for: test.hasingletonmdb:service=MdbActivator dependent 
components: [ObjectName: test.hasingletonmdb:service=MdbActivatorController
  |  state: CREATED
  |  I Depend On:  jboss:service=DefaultPartition
  |  test.hasingletonmdb:service=MdbActivator
  | 
  |  Depends On Me: ]
  | 2005-02-17 16:54:00,959 DEBUG [org.jboss.system.ServiceController] starting 
service test.hasingletonmdb:service=MdbActivatorController
  | 2005-02-17 16:54:00,959 DEBUG 
[org.jboss.ha.singleton.HASingletonController] Starting 
test.hasingletonmdb:service=MdbActivatorController
  | 2005-02-17 16:54:00,959 DEBUG 
[org.jboss.ha.singleton.HASingletonController] start HASingletonController
  | 2005-02-17 16:54:00,959 DEBUG 
[org.jboss.ha.singleton.HASingletonController] findHAPartitionWithName, 
name=DefaultPartition
  | 2005-02-17 16:54:00,974 DEBUG 
[org.jboss.ha.framework.server.HAPartitionImpl] dests=[eugenehp3000cluster:2275 
(additional data: 20 bytes)], 
method_call=DistributedReplicantManager._add(test.hasingletonmdb:service=MdbActivatorController,
 192.168.201.224:1099, ), mode=2, timeout=60000
  | 2005-02-17 16:54:00,974 DEBUG 
[org.jboss.ha.framework.server.HAPartitionImpl] 
real_dests=[eugenehp3000cluster:2275 (additional data: 20 bytes)]
  | 2005-02-17 16:55:00,976 DEBUG 
[org.jboss.ha.framework.server.HAPartitionImpl] responses: 
[sender=eugenehp3000cluster:2275 (additional data: 20 bytes), retval=null, 
received=false, suspected=false]
  | 
Looking at the logs, it looks like what is happening is that the node is being 
notified that it is the new master, and brings up the hasingleton.  The 
singleton base class (HASingletonController) as it is being brought up seems to 
try to query the main partition, which I would thinkit would know was itself, 
since it has received notification that it was the master.  This doesn't seem 
to be the case, though, and so it times out on it's request after 60 seconds, 
then brings up the hasingleton.

My question is, how can I reduce the failover time?  Where in the config 
scripts can I reduce the timeout only for requesting the partition?  Or is my 
guess right that it should know that it's the master already, and if so is 
there a patch available that corrects this?

Thanks,
Alex

View the original post : 
http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3867113#3867113

Reply to the post : 
http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3867113


-------------------------------------------------------
SF email is sponsored by - The IT Product Guide
Read honest & candid reviews on hundreds of IT Products from real users.
Discover which products truly live up to the hype. Start reading now.
http://ads.osdn.com/?ad_id=6595&alloc_id=14396&op=click
_______________________________________________
JBoss-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to