[jboss-cvs] JBoss Messaging SVN: r2954 - in trunk: src/main/org/jboss/messaging/core/impl/clusterconnection and 3 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Aug 6 08:40:18 EDT 2007


Author: timfox
Date: 2007-08-06 08:40:17 -0400 (Mon, 06 Aug 2007)
New Revision: 2954

Modified:
   trunk/src/main/org/jboss/jms/server/ServerPeer.java
   trunk/src/main/org/jboss/messaging/core/impl/clusterconnection/ClusterConnectionManager.java
   trunk/tests/build.xml
   trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedQueueDontUseXATest.java
   trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedQueueTestBase.java
   trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedQueueUseXATest.java
   trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedRequestResponseTest.java
   trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedTopicTest.java
   trunk/tests/src/org/jboss/test/messaging/jms/clustering/NewClusteringTestBase.java
   trunk/tests/src/org/jboss/test/messaging/tools/container/LocalTestServer.java
   trunk/tests/src/org/jboss/test/messaging/tools/container/RMITestServer.java
   trunk/tests/src/org/jboss/test/messaging/tools/container/Server.java
Log:
More work on speeding up clustering tests


Modified: trunk/src/main/org/jboss/jms/server/ServerPeer.java
===================================================================
--- trunk/src/main/org/jboss/jms/server/ServerPeer.java	2007-08-04 11:19:10 UTC (rev 2953)
+++ trunk/src/main/org/jboss/jms/server/ServerPeer.java	2007-08-06 12:40:17 UTC (rev 2954)
@@ -597,13 +597,14 @@
    	return useXAForMessagePull;
    }
    
-   public void setUseXAForMessagePull(boolean useXA)
+   public void setUseXAForMessagePull(boolean useXA) throws Exception
    {
+   	this.useXAForMessagePull = useXA;
+   	
    	if (started)
-      {
-         throw new IllegalStateException("Cannot set UseXAForMessagePull while the service is running");
-      }
-   	this.useXAForMessagePull = useXA;
+   	{
+   		clusterConnectionManager.setIsXA(useXA);
+   	}
    }
    
    public boolean isDefaultPreserveOrdering()
@@ -1046,7 +1047,7 @@
    {
    	clusterConnectionManager.resetAllSuckers();
    }
-   
+     
    public byte[] getClientAOPStack()
    {
       return clientAOPStack;

Modified: trunk/src/main/org/jboss/messaging/core/impl/clusterconnection/ClusterConnectionManager.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/impl/clusterconnection/ClusterConnectionManager.java	2007-08-04 11:19:10 UTC (rev 2953)
+++ trunk/src/main/org/jboss/messaging/core/impl/clusterconnection/ClusterConnectionManager.java	2007-08-06 12:40:17 UTC (rev 2954)
@@ -161,6 +161,32 @@
 		}
 	}
 	
+	public void setIsXA(boolean xa) throws Exception
+	{
+		boolean needToClose = this.xa != xa;
+		if (needToClose)
+		{
+			closeAllSuckers();
+		}
+		this.xa = xa;
+		if (needToClose)
+		{
+			createAllSuckers();
+		}		
+	}
+	
+	public void closeAllSuckers()
+	{
+		Iterator iter = connections.values().iterator();
+		
+		while (iter.hasNext())
+		{
+			ConnectionInfo conn = (ConnectionInfo)iter.next();
+			
+			conn.closeAllSuckers();
+		}	
+	}
+	
 	/*
 	 * We respond to two types of events -
 	 * 
@@ -624,11 +650,9 @@
 				
 				sucker.setConsuming(false);
 			}
-			
-			
 		}
 		
-		synchronized void close()
+		synchronized void closeAllSuckers()
 		{
 			Iterator iter = suckers.values().iterator();
 			
@@ -640,8 +664,12 @@
 			}
 			
 			suckers.clear();
+		}
+		
+		synchronized void close()
+		{
+			closeAllSuckers();			
 			
-			
 			//Note we use a timed callable since remoting has a habit of hanging on attempting to close
 			//We do not want this to hang the system - especially failover
 			
@@ -668,7 +696,6 @@
 				//Ignore - the server might have already closed - so this is ok
 			}
 			
-
 			connection = null;
 			
 			started = false;

Modified: trunk/tests/build.xml
===================================================================
--- trunk/tests/build.xml	2007-08-04 11:19:10 UTC (rev 2953)
+++ trunk/tests/build.xml	2007-08-06 12:40:17 UTC (rev 2954)
@@ -756,8 +756,12 @@
 <include name="**/jms/clustering/ClusterConnectionManagerTest.class"/>
 <include name="**/jms/clustering/ClusteredConnectionFactoryTest.class"/>
 <include name="**/jms/clustering/ClusteringAspectInternalTest.class"/>
-<include name="**/jms/clustering/ClusterViewUpdateTest.class"/>
+<!-- <include name="**/jms/clustering/ClusterViewUpdateTest.class"/> -->
 <include name="**/jms/clustering/DisableLoadBalancingAndFailoverTest.class"/>
+<include name="**/jms/clustering/DistributedQueueDontUseXATest.class"/>
+<include name="**/jms/clustering/DistributedQueueUseXATest.class"/>
+<include name="**/jms/clustering/DistributedRequestResponseTest.class"/>
+<include name="**/jms/clustering/DistributedTopicTest.class"/>
             </fileset>
          </batchtest>
       </junit>

Modified: trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedQueueDontUseXATest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedQueueDontUseXATest.java	2007-08-04 11:19:10 UTC (rev 2953)
+++ trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedQueueDontUseXATest.java	2007-08-06 12:40:17 UTC (rev 2954)
@@ -21,9 +21,8 @@
  */
 package org.jboss.test.messaging.jms.clustering;
 
-import javax.management.ObjectName;
+import org.jboss.test.messaging.tools.ServerManagement;
 
-import org.jboss.test.messaging.tools.container.ServiceAttributeOverrides;
 
 /**
  * 
@@ -51,29 +50,20 @@
 
    // Public --------------------------------------------------------
    
-
    // Package private ---------------------------------------------
    
    // protected ----------------------------------------------------
    
    protected void setUp() throws Exception
    {
-      nodeCount = 3;
-      
-      overrides = new ServiceAttributeOverrides();      
-      
-      overrides.put(new ObjectName("jboss.messaging:service=ServerPeer"), "UseXAForMessagePull", "false");
-
       super.setUp();
 
-      log.debug("setup done");
+      for (int i = 0; i < nodeCount; i++)
+      {
+      	ServerManagement.getServer(i).setUseXAForMessagePull(false);
+      }
    }
-
-   protected void tearDown() throws Exception
-   {
-      super.tearDown();
-   }
-
+   
    // private -----------------------------------------------------
 
    // Private -------------------------------------------------------

Modified: trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedQueueTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedQueueTestBase.java	2007-08-04 11:19:10 UTC (rev 2953)
+++ trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedQueueTestBase.java	2007-08-06 12:40:17 UTC (rev 2954)
@@ -33,7 +33,6 @@
 import javax.jms.Session;
 import javax.jms.TextMessage;
 
-import org.jboss.jms.client.JBossConnectionFactory;
 import org.jboss.test.messaging.tools.ServerManagement;
 
 
@@ -97,13 +96,11 @@
    
    public void testWithConnectionsOnAllNodesClientAck() throws Exception
    {
-   	JBossConnectionFactory factory = (JBossConnectionFactory) ic[0].lookup("/ClusteredConnectionFactory");
-
-      Connection conn0 = createConnectionOnServer(factory, 0);
+      Connection conn0 = createConnectionOnServer(cf, 0);
       
-      Connection conn1 = createConnectionOnServer(factory, 1);
+      Connection conn1 = createConnectionOnServer(cf, 1);
       
-      Connection conn2 = createConnectionOnServer(factory, 2);
+      Connection conn2 = createConnectionOnServer(cf, 2);
       
       try
       {
@@ -143,6 +140,8 @@
       		msgIds.add(tm0_1.getText());
       	}
       	
+      	tm0_1.acknowledge();
+      	
       	cons0_1.close();
       	
       	Session sess0_2 = conn0.createSession(false, Session.CLIENT_ACKNOWLEDGE);
@@ -160,6 +159,8 @@
       		msgIds.add(tm0_2.getText());
       	}
       	
+      	tm0_2.acknowledge();
+      	
       	cons0_2.close();
       	
       	
@@ -180,6 +181,8 @@
       		msgIds.add(tm1_1.getText());
       	}
       	
+      	tm1_1.acknowledge();
+      	
       	cons1_1.close();
      
       	Session sess1_2 = conn1.createSession(false, Session.CLIENT_ACKNOWLEDGE);
@@ -197,6 +200,8 @@
       		msgIds.add(tm1_2.getText());
       	}
       	
+      	tm1_2.acknowledge();
+      	
       	cons1_2.close();
       	
       	
@@ -217,6 +222,8 @@
       		msgIds.add(tm2_1.getText());
       	}
       	
+      	tm2_1.acknowledge();
+      	
       	cons2_1.close();
       	
       	Session sess2_2 = conn2.createSession(false, Session.CLIENT_ACKNOWLEDGE);
@@ -234,6 +241,8 @@
       		msgIds.add(tm2_2.getText());
       	}
       	
+      	tm2_2.acknowledge();
+      	
       	cons2_2.close();
       	
       	assertEquals(numMessages, msgIds.size());
@@ -332,8 +341,6 @@
             if (tm != null)
             {                     
 	            msgs.add(tm.getText());
-	            
-	            log.info("Got message " + tm.getText());
             }
          }           
          while (tm != null);
@@ -385,15 +392,8 @@
       nodeCount = 3;
 
       super.setUp();
-
-      log.debug("setup done");
    }
 
-   protected void tearDown() throws Exception
-   {
-      super.tearDown();
-   }
-
    // private -----------------------------------------------------
 
 

Modified: trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedQueueUseXATest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedQueueUseXATest.java	2007-08-04 11:19:10 UTC (rev 2953)
+++ trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedQueueUseXATest.java	2007-08-06 12:40:17 UTC (rev 2954)
@@ -21,10 +21,8 @@
  */
 package org.jboss.test.messaging.jms.clustering;
 
-import javax.management.ObjectName;
+import org.jboss.test.messaging.tools.ServerManagement;
 
-import org.jboss.test.messaging.tools.container.ServiceAttributeOverrides;
-
 /**
  * 
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
@@ -58,22 +56,14 @@
    
    protected void setUp() throws Exception
    {
-      nodeCount = 3;
-      
-      overrides = new ServiceAttributeOverrides();      
-      
-      overrides.put(new ObjectName("jboss.messaging:service=ServerPeer"), "UseXAForMessagePull", "true");
-
       super.setUp();
 
-      log.debug("setup done");
+      for (int i = 0; i < nodeCount; i++)
+      {
+      	ServerManagement.getServer(i).setUseXAForMessagePull(true);
+      }      
    }
 
-   protected void tearDown() throws Exception
-   {
-      super.tearDown();
-   }
-
    // private -----------------------------------------------------
 
    // Private -------------------------------------------------------

Modified: trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedRequestResponseTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedRequestResponseTest.java	2007-08-04 11:19:10 UTC (rev 2953)
+++ trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedRequestResponseTest.java	2007-08-06 12:40:17 UTC (rev 2954)
@@ -22,7 +22,6 @@
 package org.jboss.test.messaging.jms.clustering;
 
 import javax.jms.Connection;
-import javax.jms.ConnectionFactory;
 import javax.jms.DeliveryMode;
 import javax.jms.Destination;
 import javax.jms.JMSException;
@@ -30,14 +29,9 @@
 import javax.jms.MessageConsumer;
 import javax.jms.MessageListener;
 import javax.jms.MessageProducer;
-import javax.jms.Queue;
 import javax.jms.Session;
 import javax.jms.TextMessage;
-import javax.naming.InitialContext;
 
-import org.jboss.test.messaging.MessagingTestCase;
-import org.jboss.test.messaging.tools.ServerManagement;
-
 /**
  * A test for distributed request-response pattern
  *
@@ -46,7 +40,7 @@
  *
  * $Id: TemporaryDestinationTest.java 2701 2007-05-17 16:01:05Z timfox $
  */
-public class DistributedRequestResponseTest extends MessagingTestCase
+public class DistributedRequestResponseTest extends NewClusteringTestBase
 {
    // Constants ------------------------------------------------------------------------------------
 
@@ -89,29 +83,14 @@
 
    protected void setUp() throws Exception
    {
+   	nodeCount = 2;
+   	
       super.setUp();
-      
-      ServerManagement.start(0, "all", null, true);
-      ServerManagement.start(1, "all", null, false);
-
-      ServerManagement.deployQueue("testDistributedQueue", 0);
-      ServerManagement.deployQueue("testDistributedQueue", 1);
-      
-      removeAllMessages("testDistributedQueue", true, 0);
-      removeAllMessages("testDistributedQueue", true, 1);
-
-      
-
-      log.debug("setup done");
    }
 
    protected void tearDown() throws Exception
    {
-      super.tearDown();
-      
-   	ServerManagement.undeployQueue("testDistributedQueue", 0);
-   	
-      ServerManagement.undeployQueue("testDistributedQueue", 1);         	
+      super.tearDown();    	
    }
 
    // Private --------------------------------------------------------------------------------------
@@ -123,25 +102,11 @@
    	Connection conn1 = null;
       
       try
-      {      
-	      InitialContext ic0 = new InitialContext(ServerManagement.getJNDIEnvironment(0));
-	      InitialContext ic1 = new InitialContext(ServerManagement.getJNDIEnvironment(1));
-	
-	      ConnectionFactory cf = (ConnectionFactory)ic0.lookup("/ClusteredConnectionFactory");
-	      
-	      Queue queue0 = (Queue)ic0.lookup("/queue/testDistributedQueue");
-	      Queue queue1 = (Queue)ic1.lookup("/queue/testDistributedQueue");
-	   	
+      {      	
          conn0 = this.createConnectionOnServer(cf, 0);
          
-         conn1 = cf.createConnection();
+         conn1 = this.createConnectionOnServer(cf, 1);
          
-         assertEquals(0, getServerId(conn0));
-         
-         assertEquals(1, getServerId(conn1));
-         
-         // Make sure the connections are on different servers
-         
          Session session0 = conn0.createSession(false, Session.AUTO_ACKNOWLEDGE);
 
          Destination tempDest;
@@ -174,7 +139,6 @@
 				{
 					try
 					{
-						log.info("Received message in listener!");
 						Destination dest = msg.getJMSReplyTo();
 						MessageProducer prod = sess.createProducer(dest);
 						prod.setDeliveryMode(persistent ? DeliveryMode.PERSISTENT : DeliveryMode.NON_PERSISTENT);
@@ -182,7 +146,6 @@
 						String text = tm.getText();
 						tm.clearBody();
 						tm.setText(text + "reply");
-						log.info("Sending response");
 						prod.send(msg);
 					}
 					catch (JMSException e)
@@ -197,7 +160,7 @@
                   
          Session session1 = conn1.createSession(false, Session.AUTO_ACKNOWLEDGE);
          
-         MessageConsumer cons1 = session1.createConsumer(queue1);
+         MessageConsumer cons1 = session1.createConsumer(queue[1]);
          
          MyListener listener = new MyListener(session1);
          
@@ -206,7 +169,7 @@
          conn1.start();
          
                                     
-         MessageProducer prod = session0.createProducer(queue0);
+         MessageProducer prod = session0.createProducer(queue[0]);
          
          prod.setDeliveryMode(persistent ? DeliveryMode.PERSISTENT : DeliveryMode.NON_PERSISTENT);
          
@@ -216,8 +179,6 @@
             
             sm.setJMSReplyTo(tempDest);
             
-            log.info("Sending message!");
-            
             prod.send(sm);
             
             TextMessage tm = (TextMessage)cons0.receive(60000);
@@ -225,8 +186,6 @@
             assertNotNull(tm);
             
             assertEquals(sm.getText() + "reply", tm.getText());
-            
-            log.info("Received reply!");
          }   
       }
       finally

Modified: trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedTopicTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedTopicTest.java	2007-08-04 11:19:10 UTC (rev 2953)
+++ trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedTopicTest.java	2007-08-06 12:40:17 UTC (rev 2954)
@@ -44,7 +44,7 @@
  * $Id$
  *
  */
-public class DistributedTopicTest extends ClusteringTestBase
+public class DistributedTopicTest extends NewClusteringTestBase
 {
 
    // Constants -----------------------------------------------------
@@ -147,9 +147,6 @@
       ServerManagement.deployTopic("nonClusteredTopic", "nonClusteredTopic", 300000, 3000, 3000, 1, false);
       
       ServerManagement.deployTopic("nonClusteredTopic", "nonClusteredTopic", 300000, 3000, 3000, 2, false);
-     
-      
-      log.debug("setup done");
    }
 
    protected void tearDown() throws Exception
@@ -529,6 +526,8 @@
          
          MessageConsumer epsilon = sess1.createDurableSubscriber(topic[1], "epsilon");
          
+         Thread.sleep(2000);
+         
          conn0.start();
          conn1.start();
          conn2.start();
@@ -711,8 +710,7 @@
       }
    }
    
-   
-
+  
    /*
     * Create shared durable subs on multiple nodes, the local instance should always get the message
     */

Modified: trunk/tests/src/org/jboss/test/messaging/jms/clustering/NewClusteringTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/clustering/NewClusteringTestBase.java	2007-08-04 11:19:10 UTC (rev 2953)
+++ trunk/tests/src/org/jboss/test/messaging/jms/clustering/NewClusteringTestBase.java	2007-08-06 12:40:17 UTC (rev 2954)
@@ -156,8 +156,9 @@
       		topic[i] = oldTopic[i];
       	}
       	
-      	for (int i = nodeCount; i < ic.length; i++)
+      	for (int i = nodeCount; i < oldIc.length; i++)
       	{
+      		log.info("*** killing server");
       		ServerManagement.kill(i);
       	}
       }
@@ -198,28 +199,17 @@
       }
       
       cf = (JBossConnectionFactory)ic[0].lookup("/ClusteredConnectionFactory");  
-      log.info("Looked up new clustered connection factory");
-      
+      log.info("Looked up new clustered connection factory");      
    }
    
    protected void tearDown() throws Exception
    {
       super.tearDown();
-      
-      //If server 0 was killed with a killOverride we must kill the others
-      if (ServerManagement.getServer(0) == null)
-      {
-      	for (int i = 1; i < nodeCount; i++)
-      	{
-      		ServerManagement.kill(i);
-      	}      	
-      }
-           
+                 
       // This will tell us if any connections have been left open
 		assertEquals(0, ResourceManagerFactory.instance.size());	
    }
 
-
    protected String getLocatorURL(Connection conn)
    {
       return getConnectionState(conn).getRemotingConnection().
@@ -237,9 +227,7 @@
       return (ConnectionState) (((DelegateSupport) ((JBossConnection) conn).
          getDelegate()).getState());
    }
-
-   
-
+  
    protected void waitForFailoverComplete(int serverID, Connection conn1)
       throws Exception
    {

Modified: trunk/tests/src/org/jboss/test/messaging/tools/container/LocalTestServer.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/tools/container/LocalTestServer.java	2007-08-04 11:19:10 UTC (rev 2953)
+++ trunk/tests/src/org/jboss/test/messaging/tools/container/LocalTestServer.java	2007-08-06 12:40:17 UTC (rev 2954)
@@ -901,6 +901,11 @@
    {
    	getServerPeer().resetAllSuckers();
    }
+   
+   public void setUseXAForMessagePull(boolean xa) throws Exception
+   {
+   	getServerPeer().setUseXAForMessagePull(xa);
+   }
 
    // Public ---------------------------------------------------------------------------------------
 

Modified: trunk/tests/src/org/jboss/test/messaging/tools/container/RMITestServer.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/tools/container/RMITestServer.java	2007-08-04 11:19:10 UTC (rev 2953)
+++ trunk/tests/src/org/jboss/test/messaging/tools/container/RMITestServer.java	2007-08-06 12:40:17 UTC (rev 2954)
@@ -501,6 +501,11 @@
    {
    	server.resetAllSuckers();
    }
+   
+   public void setUseXAForMessagePull(boolean xa) throws Exception
+   {
+   	server.setUseXAForMessagePull(xa);
+   }
 
    // Public --------------------------------------------------------
 

Modified: trunk/tests/src/org/jboss/test/messaging/tools/container/Server.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/tools/container/Server.java	2007-08-04 11:19:10 UTC (rev 2953)
+++ trunk/tests/src/org/jboss/test/messaging/tools/container/Server.java	2007-08-06 12:40:17 UTC (rev 2954)
@@ -290,4 +290,6 @@
    
    void resetAllSuckers() throws Exception;
    
+   void setUseXAForMessagePull(boolean xa) throws Exception;
+   
 }




More information about the jboss-cvs-commits mailing list