[jboss-cvs] JBoss Messaging SVN: r1737 - branches/Branch_Client_Failover_Experiment/tests/src/org/jboss/test/messaging/jms/clustering
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Sat Dec 9 10:22:53 EST 2006
Author: timfox
Date: 2006-12-09 10:22:51 -0500 (Sat, 09 Dec 2006)
New Revision: 1737
Modified:
branches/Branch_Client_Failover_Experiment/tests/src/org/jboss/test/messaging/jms/clustering/HATest.java
Log:
Extended test
Modified: branches/Branch_Client_Failover_Experiment/tests/src/org/jboss/test/messaging/jms/clustering/HATest.java
===================================================================
--- branches/Branch_Client_Failover_Experiment/tests/src/org/jboss/test/messaging/jms/clustering/HATest.java 2006-12-09 15:11:31 UTC (rev 1736)
+++ branches/Branch_Client_Failover_Experiment/tests/src/org/jboss/test/messaging/jms/clustering/HATest.java 2006-12-09 15:22:51 UTC (rev 1737)
@@ -190,58 +190,61 @@
}
/*
- * Test that the failover mapping is created correctly
+ * Test that the failover mapping is created correctly and updated properly when nodes leave
+ * or join
*/
public void testDefaultFailoverMap() throws Exception
{
- JBossConnectionFactory factory = (JBossConnectionFactory )ic0.lookup("/ConnectionFactory");
+ {
+ JBossConnectionFactory factory = (JBossConnectionFactory )ic0.lookup("/ConnectionFactory");
+
+ ClusteredClientConnectionFactoryDelegate delegate =
+ (ClusteredClientConnectionFactoryDelegate)factory.getDelegate();
+
+ assertEquals(3, ServerManagement.getServer(0).getNumberOfNodesOnCluster());
+
+ ClientConnectionFactoryDelegate[] delegates = delegate.getDelegates();
+
+ ClientConnectionFactoryDelegate cf1 = delegate.getDelegates()[0];
+
+ ClientConnectionFactoryDelegate cf2 = delegate.getDelegates()[1];
+
+ ClientConnectionFactoryDelegate cf3 = delegate.getDelegates()[2];
+
+ //The order here depends on the order the servers were started in
+
+ //If any servers get stopped and then started then the order will change
+
+ log.info("cf1 serverid=" + cf1.getServerId());
+
+ log.info("cf2 serverid=" + cf2.getServerId());
+
+ log.info("cf3 serverid=" + cf3.getServerId());
+
+
+ assertEquals(0, cf1.getServerId());
+
+ assertEquals(1, cf2.getServerId());
+
+ assertEquals(2, cf3.getServerId());
+
+ Map failoverMap = delegate.getFailoverMap();
+
+ assertEquals(3, delegates.length);
+
+ assertEquals(3, failoverMap.size());
+
+ // Default failover policy just chooses the node to the right
+
+ assertEquals(cf2.getServerId(), ((Integer)failoverMap.get(new Integer(cf1.getServerId()))).intValue());
+
+ assertEquals(cf3.getServerId(), ((Integer)failoverMap.get(new Integer(cf2.getServerId()))).intValue());
+
+ assertEquals(cf1.getServerId(), ((Integer)failoverMap.get(new Integer(cf3.getServerId()))).intValue());
+
+ assertEquals(2, ((Integer)failoverMap.get(new Integer(1))).intValue());
+ }
- ClusteredClientConnectionFactoryDelegate delegate =
- (ClusteredClientConnectionFactoryDelegate)factory.getDelegate();
-
- assertEquals(3, ServerManagement.getServer(0).getNumberOfNodesOnCluster());
-
- ClientConnectionFactoryDelegate[] delegates = delegate.getDelegates();
-
- ClientConnectionFactoryDelegate cf1 = delegate.getDelegates()[0];
-
- ClientConnectionFactoryDelegate cf2 = delegate.getDelegates()[1];
-
- ClientConnectionFactoryDelegate cf3 = delegate.getDelegates()[2];
-
- //The order here depends on the order the servers were started in
-
- //If any servers get stopped and then started then the order will change
-
- log.info("cf1 serverid=" + cf1.getServerId());
-
- log.info("cf2 serverid=" + cf2.getServerId());
-
- log.info("cf3 serverid=" + cf3.getServerId());
-
-
- assertEquals(0, cf1.getServerId());
-
- assertEquals(1, cf2.getServerId());
-
- assertEquals(2, cf3.getServerId());
-
- Map failoverMap = delegate.getFailoverMap();
-
- assertEquals(3, delegates.length);
-
- assertEquals(3, failoverMap.size());
-
- // Default failover policy just chooses the node to the right
-
- assertEquals(cf2.getServerId(), ((Integer)failoverMap.get(new Integer(cf1.getServerId()))).intValue());
-
- assertEquals(cf3.getServerId(), ((Integer)failoverMap.get(new Integer(cf2.getServerId()))).intValue());
-
- assertEquals(cf1.getServerId(), ((Integer)failoverMap.get(new Integer(cf3.getServerId()))).intValue());
-
- assertEquals(2, ((Integer)failoverMap.get(new Integer(1))).intValue());
-
//Now cleanly stop one of the servers
@@ -252,44 +255,46 @@
assertEquals(2, ServerManagement.getServer(1).getNumberOfNodesOnCluster());
- //Lookup another connection factory
+ {
+ //Lookup another connection factory
+
+ JBossConnectionFactory factory = (JBossConnectionFactory )ic1.lookup("/ConnectionFactory");
+
+ log.info("Got connection factory");
+
+ ClusteredClientConnectionFactoryDelegate delegate =
+ (ClusteredClientConnectionFactoryDelegate)factory.getDelegate();
+
+ ClientConnectionFactoryDelegate[] delegates = delegate.getDelegates();
+
+ Map failoverMap = delegate.getFailoverMap();
+
+ log.info("Got failover map");
+
+ assertEquals(2, delegates.length);
+
+ ClientConnectionFactoryDelegate cf1 = delegate.getDelegates()[0];
+
+ ClientConnectionFactoryDelegate cf2 = delegate.getDelegates()[1];
+
+ //Order here depends on order servers were started in
+
+ log.info("cf1 serverid=" + cf1.getServerId());
+
+ log.info("cf2 serverid=" + cf2.getServerId());
+
+ assertEquals(1, cf1.getServerId());
+
+ assertEquals(2, cf2.getServerId());
+
+
+ assertEquals(2, failoverMap.size());
+
+ assertEquals(cf2.getServerId(), ((Integer)failoverMap.get(new Integer(cf1.getServerId()))).intValue());
+
+ assertEquals(cf1.getServerId(), ((Integer)failoverMap.get(new Integer(cf2.getServerId()))).intValue());
+ }
- JBossConnectionFactory factory2 = (JBossConnectionFactory )ic1.lookup("/ConnectionFactory");
-
- log.info("Got connection factory");
-
- ClusteredClientConnectionFactoryDelegate delegate2 =
- (ClusteredClientConnectionFactoryDelegate)factory2.getDelegate();
-
- ClientConnectionFactoryDelegate[] delegates2 = delegate2.getDelegates();
-
- Map failoverMap2 = delegate2.getFailoverMap();
-
- log.info("Got failover map");
-
- assertEquals(2, delegates2.length);
-
- cf1 = delegate2.getDelegates()[0];
-
- cf2 = delegate2.getDelegates()[1];
-
- //Order here depends on order servers were started in
-
- log.info("cf1 serverid=" + cf1.getServerId());
-
- log.info("cf2 serverid=" + cf2.getServerId());
-
- assertEquals(1, cf1.getServerId());
-
- assertEquals(2, cf2.getServerId());
-
-
- assertEquals(2, failoverMap2.size());
-
- assertEquals(cf2.getServerId(), ((Integer)failoverMap2.get(new Integer(cf1.getServerId()))).intValue());
-
- assertEquals(cf1.getServerId(), ((Integer)failoverMap2.get(new Integer(cf2.getServerId()))).intValue());
-
//Cleanly stop another server
log.info("Server 1 is started: " + ServerManagement.getServer(1).isServerPeerStarted());
@@ -298,31 +303,123 @@
assertEquals(1, ServerManagement.getServer(2).getNumberOfNodesOnCluster());
- //Lookup another connection factory
+ {
+ //Lookup another connection factory
+
+ JBossConnectionFactory factory = (JBossConnectionFactory )ic2.lookup("/ConnectionFactory");
+
+ ClusteredClientConnectionFactoryDelegate delegate =
+ (ClusteredClientConnectionFactoryDelegate)factory.getDelegate();
+
+ ClientConnectionFactoryDelegate[] delegates = delegate.getDelegates();
+
+ Map failoverMap = delegate.getFailoverMap();
+
+ assertEquals(1, delegates.length);
+
+ ClientConnectionFactoryDelegate cf1 = delegate.getDelegates()[0];
+
+ assertEquals(2, cf1.getServerId());
+
+
+ assertEquals(1, failoverMap.size());
+
+ assertEquals(cf1.getServerId(), ((Integer)failoverMap.get(new Integer(cf1.getServerId()))).intValue());
+ }
+
+ //Restart server 0
- JBossConnectionFactory factory3 = (JBossConnectionFactory )ic2.lookup("/ConnectionFactory");
+ ServerManagement.start("all", 0);
- ClusteredClientConnectionFactoryDelegate delegate3 =
- (ClusteredClientConnectionFactoryDelegate)factory3.getDelegate();
+ {
+ JBossConnectionFactory factory = (JBossConnectionFactory )ic0.lookup("/ConnectionFactory");
+
+ log.info("Got connection factory");
+
+ ClusteredClientConnectionFactoryDelegate delegate =
+ (ClusteredClientConnectionFactoryDelegate)factory.getDelegate();
+
+ ClientConnectionFactoryDelegate[] delegates = delegate.getDelegates();
+
+ Map failoverMap = delegate.getFailoverMap();
+
+ log.info("Got failover map");
+
+ assertEquals(2, delegates.length);
+
+ ClientConnectionFactoryDelegate cf1 = delegate.getDelegates()[0];
+
+ ClientConnectionFactoryDelegate cf2 = delegate.getDelegates()[1];
+
+ log.info("cf1 serverid=" + cf1.getServerId());
+
+ log.info("cf2 serverid=" + cf2.getServerId());
+
+ assertEquals(2, cf1.getServerId());
+
+ assertEquals(0, cf2.getServerId());
+
+
+ assertEquals(2, failoverMap.size());
+
+ assertEquals(cf2.getServerId(), ((Integer)failoverMap.get(new Integer(cf1.getServerId()))).intValue());
+
+ assertEquals(cf1.getServerId(), ((Integer)failoverMap.get(new Integer(cf2.getServerId()))).intValue());
+ }
- ClientConnectionFactoryDelegate[] delegates3 = delegate3.getDelegates();
- Map failoverMap3 = delegate3.getFailoverMap();
+ //Restart server 1
- assertEquals(1, delegates3.length);
+ ServerManagement.start("all", 1);
- cf1 = delegate3.getDelegates()[0];
+ {
+ JBossConnectionFactory factory = (JBossConnectionFactory )ic1.lookup("/ConnectionFactory");
+
+ log.info("Got connection factory");
+
+ ClusteredClientConnectionFactoryDelegate delegate =
+ (ClusteredClientConnectionFactoryDelegate)factory.getDelegate();
+
+ ClientConnectionFactoryDelegate[] delegates = delegate.getDelegates();
+
+ Map failoverMap = delegate.getFailoverMap();
+
+ log.info("Got failover map");
+
+ assertEquals(3, delegates.length);
+
+ ClientConnectionFactoryDelegate cf1 = delegate.getDelegates()[0];
+
+ ClientConnectionFactoryDelegate cf2 = delegate.getDelegates()[1];
+
+ ClientConnectionFactoryDelegate cf3 = delegate.getDelegates()[2];
+
+ log.info("cf1 serverid=" + cf1.getServerId());
+
+ log.info("cf2 serverid=" + cf2.getServerId());
+
+ log.info("cf3 serverid=" + cf3.getServerId());
+
+ assertEquals(2, cf1.getServerId());
+
+ assertEquals(0, cf2.getServerId());
+
+ assertEquals(1, cf3.getServerId());
+
+
+ assertEquals(3, failoverMap.size());
+
+ assertEquals(cf2.getServerId(), ((Integer)failoverMap.get(new Integer(cf1.getServerId()))).intValue());
+
+ assertEquals(cf3.getServerId(), ((Integer)failoverMap.get(new Integer(cf2.getServerId()))).intValue());
+
+ assertEquals(cf1.getServerId(), ((Integer)failoverMap.get(new Integer(cf3.getServerId()))).intValue());
+ }
+ }
+
+ public void testSimpleFailover() throws Exception
+ {
- assertEquals(2, cf1.getServerId());
-
-
- assertEquals(1, failoverMap3.size());
-
- assertEquals(cf1.getServerId(), ((Integer)failoverMap3.get(new Integer(cf1.getServerId()))).intValue());
-
- //TODO - Add nodes back into the cluster - test framework currently does not support this
-
-
}
More information about the jboss-cvs-commits
mailing list