[jboss-cvs] JBoss Messaging SVN: r1740 - 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 13:17:17 EST 2006


Author: timfox
Date: 2006-12-09 13:17:15 -0500 (Sat, 09 Dec 2006)
New Revision: 1740

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/SimpleClusteringTest.java
Log:
More test tweaks


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 17:37:56 UTC (rev 1739)
+++ branches/Branch_Client_Failover_Experiment/tests/src/org/jboss/test/messaging/jms/clustering/HATest.java	2006-12-09 18:17:15 UTC (rev 1740)
@@ -26,10 +26,13 @@
 
 import javax.jms.Connection;
 import javax.jms.MessageConsumer;
+import javax.jms.MessageProducer;
+import javax.jms.Session;
 import javax.jms.TextMessage;
 
 import org.jboss.jms.client.JBossConnection;
 import org.jboss.jms.client.JBossConnectionFactory;
+import org.jboss.jms.client.delegate.ClientConnectionDelegate;
 import org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate;
 import org.jboss.jms.client.delegate.ClusteredClientConnectionFactoryDelegate;
 import org.jboss.jms.client.delegate.DelegateSupport;
@@ -241,8 +244,6 @@
          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
@@ -419,7 +420,124 @@
    
    public void testSimpleFailover() throws Exception
    {
+      JBossConnectionFactory factory =  (JBossConnectionFactory )ic0.lookup("/ConnectionFactory");
       
+      ClusteredClientConnectionFactoryDelegate delegate =
+         (ClusteredClientConnectionFactoryDelegate)factory.getDelegate();
+      
+      assertEquals(3, ServerManagement.getServer(0).getNumberOfNodesOnCluster());
+      
+      ClientConnectionFactoryDelegate[] delegates = delegate.getDelegates();
+      
+      ClientConnectionFactoryDelegate cf1 = delegates[0];
+      
+      ClientConnectionFactoryDelegate cf2 = delegates[1];
+      
+      int server0Id = cf1.getServerId();
+      
+      int server1Id = cf2.getServerId();
+                  
+      Map failoverMap = delegate.getFailoverMap();
+      
+      int server0FailoverId = ((Integer)failoverMap.get(new Integer(server0Id))).intValue();
+      
+      // server 0 should failover onto server 1
+      
+      assertEquals(server1Id, server0FailoverId);
+      
+      Connection conn = null;
+      
+      try
+      {
+      
+         //Send a message into a queue on server 0
+         
+         conn = factory.createConnection();
+         
+         JBossConnection jbc = (JBossConnection)conn;
+         
+         ClientConnectionDelegate del = (ClientConnectionDelegate)jbc.getDelegate();
+         
+         ConnectionState state = (ConnectionState)del.getState();
+         
+         int initialServerID = state.getServerID();
+         
+         assertEquals(0, initialServerID);
+         
+         
+         
+         Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
+         
+         MessageProducer prod = sess.createProducer(queue0);
+         
+         final int NUM_MESSAGES = 100;
+         
+         for (int i = 0; i < NUM_MESSAGES; i++)
+         {
+            TextMessage tm = sess.createTextMessage("message:" + i);
+            
+            prod.send(tm);
+         }
+         
+         //So now, messages should be in queue0 on server 0
+         //So we now kill server 0
+         //Which should cause transparent failover of connection conn onto server 1
+         
+         log.info("************ KILLING (CRASHING) SERVER 0");
+         
+         ServerManagement.getServer(0).destroy();
+         
+         log.info("killed server, now waiting");
+         
+         Thread.sleep(3000);
+         
+         log.info("done wait");
+         
+         state = (ConnectionState)del.getState();
+         
+         int finalServerID = state.getServerID();
+         
+         log.info("final server id= " + finalServerID);
+         
+         //server id should now be 1
+         
+         assertEquals(1, finalServerID);
+         
+         log.info("here 2");
+         
+         //I should now be able to create a consumer on the same connection and consume the messages
+         
+         MessageConsumer cons = sess.createConsumer(queue0);
+         
+         conn.start();
+         
+         log.info("here 3");
+         
+         for (int i = 0; i < NUM_MESSAGES; i++)
+         {
+            TextMessage tm = (TextMessage)cons.receive(1000);
+            
+            assertNotNull(tm);
+            
+            assertEquals("message:" + i, tm.getText());
+         }
+         log.info("here 4");
+      }
+      finally
+      {         
+         if (conn != null)
+         {
+            try
+            {
+               conn.close();
+            }
+            catch (Exception e)
+            {
+               //Ignore
+            }
+         }
+      }
+      
    }
    
    

Modified: branches/Branch_Client_Failover_Experiment/tests/src/org/jboss/test/messaging/jms/clustering/SimpleClusteringTest.java
===================================================================
--- branches/Branch_Client_Failover_Experiment/tests/src/org/jboss/test/messaging/jms/clustering/SimpleClusteringTest.java	2006-12-09 17:37:56 UTC (rev 1739)
+++ branches/Branch_Client_Failover_Experiment/tests/src/org/jboss/test/messaging/jms/clustering/SimpleClusteringTest.java	2006-12-09 18:17:15 UTC (rev 1740)
@@ -100,6 +100,11 @@
       ServerManagement.start("all", 0);
 
    }
+   
+   public void testKill() throws Exception
+   {
+      ServerManagement.getServer(0).destroy();
+   }
 
 
 




More information about the jboss-cvs-commits mailing list