[jboss-cvs] JBoss Messaging SVN: r2837 - in trunk: tests/src/org/jboss/test/messaging and 2 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Jul 4 09:09:09 EDT 2007
Author: sergeypk
Date: 2007-07-04 09:09:09 -0400 (Wed, 04 Jul 2007)
New Revision: 2837
Modified:
trunk/src/main/org/jboss/jms/client/plugin/RoundRobinLoadBalancingPolicy.java
trunk/tests/src/org/jboss/test/messaging/MessagingTestCase.java
trunk/tests/src/org/jboss/test/messaging/jms/QueueTest.java
trunk/tests/src/org/jboss/test/messaging/jms/clustering/ClusterViewUpdateTest.java
trunk/tests/src/org/jboss/test/messaging/jms/clustering/ClusteredConnectionFactoryTest.java
trunk/tests/src/org/jboss/test/messaging/jms/clustering/ClusteringTestBase.java
trunk/tests/src/org/jboss/test/messaging/jms/clustering/DisableLoadBalancingAndFailoverTest.java
trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedRequestResponseTest.java
trunk/tests/src/org/jboss/test/messaging/jms/clustering/FailoverTest.java
trunk/tests/src/org/jboss/test/messaging/jms/clustering/HATest.java
trunk/tests/src/org/jboss/test/messaging/jms/clustering/LoadBalancingTest.java
trunk/tests/src/org/jboss/test/messaging/jms/clustering/MergeQueueTest.java
trunk/tests/src/org/jboss/test/messaging/jms/clustering/XAFailoverTest.java
Log:
http://jira.jboss.com/jira/browse/JBMESSAGING-1000 - randomize the first node chosen by RoundRobinLoadBalancingPolicy
Modified: trunk/src/main/org/jboss/jms/client/plugin/RoundRobinLoadBalancingPolicy.java
===================================================================
--- trunk/src/main/org/jboss/jms/client/plugin/RoundRobinLoadBalancingPolicy.java 2007-07-04 11:47:45 UTC (rev 2836)
+++ trunk/src/main/org/jboss/jms/client/plugin/RoundRobinLoadBalancingPolicy.java 2007-07-04 13:09:09 UTC (rev 2837)
@@ -6,6 +6,8 @@
*/
package org.jboss.jms.client.plugin;
+import java.util.Random;
+
import org.jboss.jms.delegate.ConnectionFactoryDelegate;
/**
@@ -24,6 +26,8 @@
// Attributes -----------------------------------------------------------------------------------
+ private static final Random random = new Random();
+
// The index of the next delegate to be used
private int next;
@@ -33,6 +37,7 @@
public RoundRobinLoadBalancingPolicy(ConnectionFactoryDelegate[] delegates)
{
+ next = -1;
this.delegates = delegates;
}
@@ -44,13 +49,18 @@
{
next = 0;
}
+
+ if (next < 0)
+ {
+ next = random.nextInt(delegates.length);
+ }
return delegates[next++];
}
public synchronized void updateView(ConnectionFactoryDelegate[] delegates)
{
- next = 0;
+ next = -1;
this.delegates = delegates;
}
Modified: trunk/tests/src/org/jboss/test/messaging/MessagingTestCase.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/MessagingTestCase.java 2007-07-04 11:47:45 UTC (rev 2836)
+++ trunk/tests/src/org/jboss/test/messaging/MessagingTestCase.java 2007-07-04 13:09:09 UTC (rev 2837)
@@ -35,6 +35,7 @@
import javax.sql.DataSource;
import javax.transaction.TransactionManager;
+import org.jboss.jms.client.JBossConnection;
import org.jboss.jms.message.MessageIdGeneratorFactory;
import org.jboss.logging.Logger;
import org.jboss.test.messaging.tools.ServerManagement;
@@ -281,6 +282,15 @@
return ServerManagement.isRemote();
}
+ /**
+ * @param conn a JMS connection
+ * @return the ID of the ServerPeer the connection is communicating with.
+ */
+ protected int getServerId(Connection conn)
+ {
+ return ((JBossConnection) conn).getServerID();
+ }
+
// Private -------------------------------------------------------
// Inner classes -------------------------------------------------
Modified: trunk/tests/src/org/jboss/test/messaging/jms/QueueTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/QueueTest.java 2007-07-04 11:47:45 UTC (rev 2836)
+++ trunk/tests/src/org/jboss/test/messaging/jms/QueueTest.java 2007-07-04 13:09:09 UTC (rev 2837)
@@ -133,11 +133,11 @@
Connection conn1 = cf.createConnection();
- assertEquals(0, ((JBossConnection) conn1).getServerID());
+ assertEquals(0, getServerId(conn1));
Connection conn2 = cf.createConnection();
- assertEquals(0, ((JBossConnection) conn2).getServerID());
+ assertEquals(0, getServerId(conn2));
try
{
Modified: trunk/tests/src/org/jboss/test/messaging/jms/clustering/ClusterViewUpdateTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/clustering/ClusterViewUpdateTest.java 2007-07-04 11:47:45 UTC (rev 2836)
+++ trunk/tests/src/org/jboss/test/messaging/jms/clustering/ClusterViewUpdateTest.java 2007-07-04 13:09:09 UTC (rev 2837)
@@ -57,7 +57,7 @@
public void testUpdateConnectionFactory() throws Exception
{
- Connection conn = cf.createConnection();
+ Connection conn = createConnectionOnServer(cf, 0);
JBossConnectionFactory jbcf = (JBossConnectionFactory)cf;
@@ -98,7 +98,7 @@
public void testUpdateMixedConnectionFactory() throws Exception
{
- Connection conn = cf.createConnection();
+ Connection conn = createConnectionOnServer(cf, 0);
JBossConnectionFactory jbcf = (JBossConnectionFactory)cf;
ClientClusteredConnectionFactoryDelegate cfDelegate =
@@ -109,7 +109,7 @@
ConnectionFactory httpCF = (ConnectionFactory)ic[0].lookup("/HTTPConnectionFactory");
JBossConnectionFactory jbhttpCF = (JBossConnectionFactory) httpCF;
- Connection httpConn = httpCF.createConnection();
+ Connection httpConn = createConnectionOnServer(httpCF, 0);
ClientClusteredConnectionFactoryDelegate httpcfDelegate =
(ClientClusteredConnectionFactoryDelegate)jbhttpCF.getDelegate();
@@ -160,7 +160,7 @@
public void testUpdateConnectionFactoryRaceCondition() throws Exception
{
// This connection needs to be opened, as we need the callback to update CF from this conn
- Connection conn = cf.createConnection();
+ Connection conn = createConnectionOnServer(cf, 0);
JBossConnectionFactory jbcf = (JBossConnectionFactory) cf;
ClientClusteredConnectionFactoryDelegate cfDelegate =
(ClientClusteredConnectionFactoryDelegate) jbcf.getDelegate();
Modified: trunk/tests/src/org/jboss/test/messaging/jms/clustering/ClusteredConnectionFactoryTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/clustering/ClusteredConnectionFactoryTest.java 2007-07-04 11:47:45 UTC (rev 2836)
+++ trunk/tests/src/org/jboss/test/messaging/jms/clustering/ClusteredConnectionFactoryTest.java 2007-07-04 13:09:09 UTC (rev 2837)
@@ -23,6 +23,8 @@
package org.jboss.test.messaging.jms.clustering;
import javax.jms.Connection;
+import javax.jms.ConnectionFactory;
+import javax.jms.JMSException;
import org.jboss.jms.client.JBossConnection;
import org.jboss.jms.client.JBossConnectionFactory;
@@ -92,7 +94,7 @@
assertNotNull(((JBossConnectionFactory)cf).getDelegate().getClientAOPStack());
conn = cf.createConnection();
- assertEquals(2, ((JBossConnection)conn).getServerID());
+ assertEquals(2, getServerId(conn));
}
finally
{
@@ -112,22 +114,21 @@
ServerManagement.start(0, "all", true);
}
}
-
+
public void testCreateConnectionOnBrokenServer() throws Exception
{
Connection conn = null;
try
{
- conn = cf.createConnection();
- assertEquals(0, ((JBossConnection)conn).getServerID());
+ conn = createConnectionOnServer(cf, 0);
conn.close();
conn = null;
ServerManagement.killAndWait(1);
conn = cf.createConnection();
- assertEquals(2,((JBossConnection)conn).getServerID());
+ assertEquals(2, getServerId(conn));
}
finally
{
@@ -148,8 +149,7 @@
// Poison each server with a different pointcut crash
ServerManagement.poisonTheServer(1, PoisonInterceptor.CF_CREATE_CONNECTION);
- conn = cf.createConnection();
- assertEquals(0, ((JBossConnection)conn).getServerID());
+ conn = createConnectionOnServer(cf, 0);
conn.close();
conn = null;
@@ -157,7 +157,7 @@
log.info("creating connection on server 1");
conn = cf.createConnection();
- assertEquals(2, ((JBossConnection)conn).getServerID());
+ assertEquals(2, getServerId(conn));
}
finally
{
@@ -174,15 +174,14 @@
try
{
- conn = cf.createConnection();
- assertEquals(0, ((JBossConnection)conn).getServerID());
+ conn = createConnectionOnServer(cf, 0);
conn.close();
ServerManagement.killAndWait(1);
ServerManagement.killAndWait(2);
conn = cf.createConnection();
- assertEquals(0, ((JBossConnection)conn).getServerID());
+ assertEquals(0, getServerId(conn));
}
finally
{
@@ -199,15 +198,14 @@
try
{
- conn = cf.createConnection();
- assertEquals(0, ((JBossConnection)conn).getServerID());
+ conn = createConnectionOnServer(cf, 0);
conn.close();
ServerManagement.killAndWait(1);
ServerManagement.killAndWait(2);
conn = cf.createConnection();
- assertEquals(0, ((JBossConnection)conn).getServerID());
+ assertEquals(0, getServerId(conn));
}
finally
{
Modified: trunk/tests/src/org/jboss/test/messaging/jms/clustering/ClusteringTestBase.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/clustering/ClusteringTestBase.java 2007-07-04 11:47:45 UTC (rev 2836)
+++ trunk/tests/src/org/jboss/test/messaging/jms/clustering/ClusteringTestBase.java 2007-07-04 13:09:09 UTC (rev 2837)
@@ -29,6 +29,8 @@
import javax.jms.Queue;
import javax.jms.Session;
import javax.jms.Topic;
+import javax.jms.XAConnection;
+import javax.jms.XAConnectionFactory;
import javax.naming.Context;
import javax.naming.InitialContext;
@@ -186,6 +188,28 @@
}
}
+ protected XAConnection createXAConnectionOnServer(XAConnectionFactory factory, int serverId)
+ throws Exception
+ {
+ int count=0;
+
+ while (true)
+ {
+ if (count++>10)
+ return null;
+
+ XAConnection connection = factory.createXAConnection();
+
+ if (getServerId(connection) == serverId)
+ {
+ return connection;
+ }
+ else
+ {
+ connection.close();
+ }
+ }
+ }
protected void waitForFailoverComplete(int serverID, Connection conn1)
throws Exception
Modified: trunk/tests/src/org/jboss/test/messaging/jms/clustering/DisableLoadBalancingAndFailoverTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/clustering/DisableLoadBalancingAndFailoverTest.java 2007-07-04 11:47:45 UTC (rev 2836)
+++ trunk/tests/src/org/jboss/test/messaging/jms/clustering/DisableLoadBalancingAndFailoverTest.java 2007-07-04 13:09:09 UTC (rev 2837)
@@ -106,31 +106,31 @@
{
conn = theCF.createConnection();
- int serverID = ((JBossConnection)conn).getServerID();
+ int serverID = getServerId(conn);
conn.close();
conn = theCF.createConnection();
- assertEquals(serverID, ((JBossConnection)conn).getServerID());
+ assertEquals(serverID, getServerId(conn));
conn.close();
conn = theCF.createConnection();
- assertEquals(serverID, ((JBossConnection)conn).getServerID());
+ assertEquals(serverID, getServerId(conn));
conn.close();
conn = theCF.createConnection();
- assertEquals(serverID, ((JBossConnection)conn).getServerID());
+ assertEquals(serverID, getServerId(conn));
conn.close();
conn = theCF.createConnection();
- assertEquals(serverID, ((JBossConnection)conn).getServerID());
+ assertEquals(serverID, getServerId(conn));
}
finally
{
@@ -151,7 +151,7 @@
conn = theCF.createConnection();
- int serverID = ((JBossConnection)conn).getServerID();
+ int serverID = getServerId(conn);
log.info("server id is " + serverID);
conn.close();
@@ -159,7 +159,7 @@
conn = theCF.createConnection();
serverID = ++serverID % 3;
- assertEquals(serverID, ((JBossConnection)conn).getServerID());
+ assertEquals(serverID, getServerId(conn));
log.info("server id is " + serverID);
@@ -168,7 +168,7 @@
conn = theCF.createConnection();
serverID = ++serverID % 3;
- assertEquals(serverID, ((JBossConnection)conn).getServerID());
+ assertEquals(serverID, getServerId(conn));
log.info("server id is " + serverID);
conn.close();
@@ -176,7 +176,7 @@
conn = theCF.createConnection();
serverID = ++serverID % 3;
- assertEquals(serverID, ((JBossConnection)conn).getServerID());
+ assertEquals(serverID, getServerId(conn));
log.info("server id is " + serverID);
conn.close();
@@ -184,7 +184,7 @@
conn = theCF.createConnection();
serverID = ++serverID % 3;
- assertEquals(serverID, ((JBossConnection)conn).getServerID());
+ assertEquals(serverID, getServerId(conn));
log.info("server id is " + serverID);
}
finally
@@ -203,17 +203,9 @@
try
{
- do
- {
- if (conn != null)
- {
- conn.close();
- }
- conn = theCF.createConnection();
- }
- while (((JBossConnection)conn).getServerID() != 1);
+ conn = createConnectionOnServer(theCF, 1);
- assertEquals(1, ((JBossConnection)conn).getServerID());
+ assertEquals(1, getServerId(conn));
Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
@@ -263,21 +255,13 @@
try
{
- do
- {
- if (conn != null)
- {
- conn.close();
- }
- conn = theCF1.createConnection();
- }
- while (((JBossConnection)conn).getServerID() != 1);
+ conn = createConnectionOnServer(theCF1, 1);
MyListener listener = new MyListener();
conn.setExceptionListener(listener);
- assertEquals(1, ((JBossConnection)conn).getServerID());
+ assertEquals(1, getServerId(conn));
//Now kill server 1
@@ -331,21 +315,13 @@
try
{
- do
- {
- if (conn != null)
- {
- conn.close();
- }
- conn = theCF.createConnection();
- }
- while (((JBossConnection)conn).getServerID() != 1);
+ conn = createConnectionOnServer(theCF, 1);
// register a failover listener
SimpleFailoverListener failoverListener = new SimpleFailoverListener();
((JBossConnection)conn).registerFailoverListener(failoverListener);
- assertEquals(1, ((JBossConnection)conn).getServerID());
+ assertEquals(1, getServerId(conn));
Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
Modified: trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedRequestResponseTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedRequestResponseTest.java 2007-07-04 11:47:45 UTC (rev 2836)
+++ trunk/tests/src/org/jboss/test/messaging/jms/clustering/DistributedRequestResponseTest.java 2007-07-04 13:09:09 UTC (rev 2837)
@@ -138,9 +138,9 @@
conn1 = cf.createConnection();
- assertEquals(0, ((JBossConnection)conn0).getServerID());
+ assertEquals(0, getServerId(conn0));
- assertEquals(1, ((JBossConnection)conn1).getServerID());
+ assertEquals(1, getServerId(conn1));
// Make sure the connections are on different servers
Modified: trunk/tests/src/org/jboss/test/messaging/jms/clustering/FailoverTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/clustering/FailoverTest.java 2007-07-04 11:47:45 UTC (rev 2836)
+++ trunk/tests/src/org/jboss/test/messaging/jms/clustering/FailoverTest.java 2007-07-04 13:09:09 UTC (rev 2837)
@@ -58,16 +58,9 @@
try
{
- // skip connection to node 0
- conn = cf.createConnection();
- conn.close();
-
- // create a connection to node 1
- conn = cf.createConnection();
+ conn = createConnectionOnServer1();
conn.start();
- assertEquals(1, ((JBossConnection)conn).getServerID());
-
// register a failover listener
SimpleFailoverListener failoverListener = new SimpleFailoverListener();
((JBossConnection)conn).registerFailoverListener(failoverListener);
@@ -98,7 +91,7 @@
// failover complete
log.info("failover completed");
- assertEquals(0, ((JBossConnection)conn).getServerID());
+ assertEquals(0, getServerId(conn));
}
finally
@@ -116,16 +109,9 @@
try
{
- // skip connection to node 0
- conn = cf.createConnection();
- conn.close();
-
- // create a connection to node 1
- conn = cf.createConnection();
+ conn = createConnectionOnServer1();
conn.start();
- assertEquals(1, ((JBossConnection)conn).getServerID());
-
Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
// register a failover listener
@@ -158,7 +144,7 @@
// failover complete
log.info("failover completed");
- assertEquals(0, ((JBossConnection)conn).getServerID());
+ assertEquals(0, getServerId(conn));
// use the old session to send/receive a message
session.createProducer(queue[0]).send(session.createTextMessage("blik"));
@@ -182,17 +168,10 @@
try
{
- // skip connection to node 0
- conn = cf.createConnection();
- conn.close();
+ conn = createConnectionOnServer1();
- // create a connection to node 1
- conn = cf.createConnection();
-
conn.start();
- assertEquals(1, ((JBossConnection)conn).getServerID());
-
Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageProducer prod = session.createProducer(queue[1]);
@@ -226,7 +205,7 @@
// failover complete
log.info("failover completed");
- assertEquals(0, ((JBossConnection)conn).getServerID());
+ assertEquals(0, getServerId(conn));
// send a message, send it with the failed over producer and make sure I can receive it
Message m = session.createTextMessage("clik");
@@ -253,15 +232,8 @@
try
{
- // skip connection to node 0
- conn = cf.createConnection();
- conn.close();
+ conn = createConnectionOnServer1();
- // create a connection to node 1
- conn = cf.createConnection();
-
- assertEquals(1, ((JBossConnection)conn).getServerID());
-
Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageConsumer cons = session.createConsumer(queue[1]);
MessageProducer prod = session.createProducer(queue[1]);
@@ -303,7 +275,7 @@
// failover complete
log.info("failover completed");
- assertEquals(0, ((JBossConnection)conn).getServerID());
+ assertEquals(0, getServerId(conn));
// activate the failed-over consumer
conn.start();
@@ -327,15 +299,8 @@
try
{
- // skip connection to node 0
- conn = cf.createConnection();
- conn.close();
+ conn = createConnectionOnServer1();
- // create a connection to node 1
- conn = cf.createConnection();
-
- assertEquals(1, ((JBossConnection)conn).getServerID());
-
Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageConsumer cons = session.createConsumer(queue[1]);
MessageProducer prod = session.createProducer(queue[1]);
@@ -382,7 +347,7 @@
// failover complete
log.info("failover completed");
- assertEquals(0, ((JBossConnection)conn).getServerID());
+ assertEquals(0, getServerId(conn));
TextMessage rm = (TextMessage)cons.receive(2000);
assertNotNull(rm);
@@ -403,15 +368,9 @@
try
{
- // skip connection to node 0
- conn = cf.createConnection();
- conn.close();
-
// create a connection to node 1
- conn = cf.createConnection();
+ conn = createConnectionOnServer1();
- assertEquals(1, ((JBossConnection)conn).getServerID());
-
Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
QueueBrowser browser = session.createBrowser(queue[1]);
@@ -457,7 +416,7 @@
// failover complete
log.info("failover completed");
- assertEquals(0, ((JBossConnection)conn).getServerID());
+ assertEquals(0, getServerId(conn));
en = browser.getEnumeration();
@@ -483,15 +442,9 @@
try
{
- // skip connection to node 0
- conn = cf.createConnection();
- conn.close();
-
// create a connection to node 1
- conn = cf.createConnection();
+ conn = createConnectionOnServer1();
- assertEquals(1, ((JBossConnection)conn).getServerID());
-
Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
QueueBrowser browser = session.createBrowser(queue[1]);
@@ -529,7 +482,7 @@
// failover complete
log.info("failover completed");
- assertEquals(0, ((JBossConnection)conn).getServerID());
+ assertEquals(0, getServerId(conn));
// send one persistent and one non-persistent message
@@ -575,17 +528,10 @@
try
{
- // skip connection to node 0
- conn = cf.createConnection();
- conn.close();
+ conn = createConnectionOnServer1();
- // create a connection to node 1
- conn = cf.createConnection();
-
conn.start();
- assertEquals(1, ((JBossConnection)conn).getServerID());
-
Session session = conn.createSession(true, Session.SESSION_TRANSACTED);
// send 2 transacted messages (one persistent and one non-persistent) but don't commit
@@ -636,7 +582,7 @@
// failover complete
log.info("failover completed");
- assertEquals(0, ((JBossConnection)conn).getServerID());
+ assertEquals(0, getServerId(conn));
// commit the failed-over session
session.commit();
@@ -666,17 +612,10 @@
try
{
- // skip connection to node 0
- conn = cf.createConnection();
- conn.close();
+ conn = createConnectionOnServer1();
- // create a connection to node 1
- conn = cf.createConnection();
-
conn.start();
- assertEquals(1, ((JBossConnection)conn).getServerID());
-
Session session = conn.createSession(true, Session.SESSION_TRANSACTED);
// send 2 transacted messages (one persistent and one non-persistent) but don't commit
@@ -727,7 +666,7 @@
// failover complete
log.info("failover completed");
- assertEquals(0, ((JBossConnection)conn).getServerID());
+ assertEquals(0, getServerId(conn));
// commit the failed-over session
session.commit();
@@ -757,17 +696,10 @@
try
{
- // skip connection to node 0
- conn = cf.createConnection();
- conn.close();
+ conn = createConnectionOnServer1();
- // create a connection to node 1
- conn = cf.createConnection();
-
conn.start();
- assertEquals(1, ((JBossConnection)conn).getServerID());
-
Session session = conn.createSession(true, Session.SESSION_TRANSACTED);
// send 2 transacted messages (one persistent and one non-persistent) but don't commit
@@ -819,7 +751,7 @@
// failover complete
log.info("failover completed");
- assertEquals(0, ((JBossConnection)conn).getServerID());
+ assertEquals(0, getServerId(conn));
// commit the failed-over session
session.commit();
@@ -852,17 +784,10 @@
try
{
- // skip connection to node 0
- conn = cf.createConnection();
- conn.close();
+ conn = createConnectionOnServer1();
- // create a connection to node 1
- conn = cf.createConnection();
-
conn.start();
- assertEquals(1, ((JBossConnection)conn).getServerID());
-
Session session = conn.createSession(true, Session.SESSION_TRANSACTED);
// send 2 transacted messages (one persistent and one non-persistent) but don't commit
@@ -914,7 +839,7 @@
// failover complete
log.info("failover completed");
- assertEquals(0, ((JBossConnection)conn).getServerID());
+ assertEquals(0, getServerId(conn));
// commit the failed-over session
session.commit();
@@ -948,17 +873,10 @@
try
{
- // skip connection to node 0
- conn = cf.createConnection();
- conn.close();
+ conn = createConnectionOnServer1();
- // create a connection to node 1
- conn = cf.createConnection();
-
conn.start();
- assertEquals(1, ((JBossConnection)conn).getServerID());
-
Session session = conn.createSession(true, Session.SESSION_TRANSACTED);
// send 2 transacted messages (one persistent and one non-persistent) but don't commit
@@ -1012,7 +930,7 @@
// failover complete
log.info("failover completed");
- assertEquals(0, ((JBossConnection)conn).getServerID());
+ assertEquals(0, getServerId(conn));
// commit the failed-over session
session.commit();
@@ -1043,17 +961,10 @@
try
{
- // skip connection to node 0
- conn = cf.createConnection();
- conn.close();
+ conn = createConnectionOnServer1();
- // create a connection to node 1
- conn = cf.createConnection();
-
conn.start();
- assertEquals(1, ((JBossConnection)conn).getServerID());
-
Session session = conn.createSession(false, Session.CLIENT_ACKNOWLEDGE);
// send 2 messages (one persistent and one non-persistent)
@@ -1106,7 +1017,7 @@
// failover complete
log.info("failover completed");
- assertEquals(0, ((JBossConnection)conn).getServerID());
+ assertEquals(0, getServerId(conn));
// acknowledge the messages
clik.acknowledge();
@@ -1141,7 +1052,7 @@
//
// conn.start();
//
-// assertEquals(1, ((JBossConnection)conn).getServerID());
+// assertEquals(1, getServerId(conn));
//
// Session session = conn.createSession(true, Session.SESSION_TRANSACTED);
//
@@ -1198,7 +1109,7 @@
// // failover complete
// log.info("failover completed");
//
-// assertEquals(0, ((JBossConnection)conn).getServerID());
+// assertEquals(0, getServerId(conn));
//
// // acknowledge the messages
// session.commit();
@@ -1223,17 +1134,10 @@
try
{
- // skip connection to node 0
- conn = cf.createConnection();
- conn.close();
+ conn = createConnectionOnServer1();
- // create a connection to node 1
- conn = cf.createConnection();
-
conn.start();
- assertEquals(1, ((JBossConnection)conn).getServerID());
-
Session session = conn.createSession(true, Session.SESSION_TRANSACTED);
// send 2 messages (one persistent and one non-persistent)
@@ -1288,7 +1192,7 @@
// failover complete
log.info("failover completed");
- assertEquals(0, ((JBossConnection)conn).getServerID());
+ assertEquals(0, getServerId(conn));
session.rollback();
@@ -1315,19 +1219,8 @@
try
{
- conn = cf.createConnection();
- conn.close();
+ conn = createConnectionOnServer1();
- conn = cf.createConnection();
- conn.start();
-
- // create a producer/consumer on node 1 and make sure we're connecting to node 1
-
- int nodeID = ((ConnectionState)((DelegateSupport)((JBossConnection)conn).
- getDelegate()).getState()).getServerID();
-
- assertEquals(1, nodeID);
-
SimpleFailoverListener failoverListener = new SimpleFailoverListener();
((JBossConnection)conn).registerFailoverListener(failoverListener);
@@ -1374,14 +1267,8 @@
try
{
- conn = cf.createConnection();
- conn.close();
+ conn = createConnectionOnServer1();
- conn = cf.createConnection();
- conn.start();
-
- assertEquals(1, ((JBossConnection)conn).getServerID());
-
SimpleFailoverListener listener = new SimpleFailoverListener();
((JBossConnection)conn).registerFailoverListener(listener);
@@ -1441,14 +1328,8 @@
try
{
- conn = cf.createConnection();
- conn.close();
+ conn = createConnectionOnServer1();
- conn = cf.createConnection();
- conn.start();
-
- assertEquals(1, ((JBossConnection)conn).getServerID());
-
SimpleFailoverListener listener = new SimpleFailoverListener();
((JBossConnection)conn).registerFailoverListener(listener);
@@ -1519,13 +1400,8 @@
try
{
- conn = cf.createConnection();
- conn.close();
+ conn = createConnectionOnServer1();
- conn = cf.createConnection();
-
- assertEquals(1, ((JBossConnection)conn).getServerID());
-
// we "cripple" the remoting connection by removing ConnectionListener. This way, failures
// cannot be "cleanly" detected by the client-side pinger, and we'll fail on an invocation
JMSRemotingConnection rc = ((ClientConnectionDelegate)((JBossConnection)conn).
@@ -1555,13 +1431,8 @@
try
{
- conn = cf.createConnection();
- conn.close();
+ conn = createConnectionOnServer1();
- conn = cf.createConnection();
-
- assertEquals(1, ((JBossConnection)conn).getServerID());
-
// we "cripple" the remoting connection by removing ConnectionListener. This way, failures
// cannot be "cleanly" detected by the client-side pinger, and we'll fail on an invocation
JMSRemotingConnection rc = ((ClientConnectionDelegate)((JBossConnection)conn).
@@ -1607,19 +1478,9 @@
try
{
- conn = cf.createConnection();
- conn.close();
-
- conn = cf.createConnection();
+ conn = createConnectionOnServer1();
conn.start();
- // make sure we're connecting to node 1
-
- int nodeID = ((ConnectionState)((DelegateSupport)((JBossConnection)conn).
- getDelegate()).getState()).getServerID();
-
- assertEquals(1, nodeID);
-
Session s1 = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageConsumer c1 = s1.createConsumer(queue[1]);
MessageProducer p1 = s1.createProducer(queue[1]);
@@ -1700,7 +1561,7 @@
//
// conn = cf.createConnection();
//
-// assertEquals(1, ((JBossConnection)conn).getServerID());
+// assertEquals(1, getServerId(conn));
//
// // we "cripple" the remoting connection by removing ConnectionListener. This way, failures
// // cannot be "cleanly" detected by the client-side pinger, and we'll fail on an invocation
@@ -1760,12 +1621,12 @@
try
{
- conn0 = cf.createConnection();
+ conn0 = createConnectionOnServer(cf, 0);
// Objects Server1
conn1 = cf.createConnection();
- assertEquals(1, ((JBossConnection)conn1).getServerID());
+ assertEquals(1, getServerId(conn1));
JMSRemotingConnection rc = ((ClientConnectionDelegate)((JBossConnection)conn1).
getDelegate()).getRemotingConnection();
@@ -1800,12 +1661,12 @@
try
{
- conn0 = cf.createConnection();
+ conn0 = createConnectionOnServer(cf, 0);
// Objects Server1
conn1 = cf.createConnection();
- assertEquals(1, ((JBossConnection)conn1).getServerID());
+ assertEquals(1, getServerId(conn1));
JMSRemotingConnection rc = ((ClientConnectionDelegate)((JBossConnection)conn1).
getDelegate()).getRemotingConnection();
@@ -1841,11 +1702,11 @@
try
{
- conn0 = cf.createConnection();
+ conn0 = createConnectionOnServer(cf, 0);
conn1 = cf.createConnection();
- assertEquals(1, ((JBossConnection)conn1).getServerID());
+ assertEquals(1, getServerId(conn1));
JMSRemotingConnection rc = ((ClientConnectionDelegate)((JBossConnection)conn1).
getDelegate()).getRemotingConnection();
@@ -1878,11 +1739,11 @@
try
{
- conn0 = cf.createConnection();
+ conn0 = createConnectionOnServer(cf, 0);
conn1 = cf.createConnection();
- assertEquals(1, ((JBossConnection)conn1).getServerID());
+ assertEquals(1, getServerId(conn1));
JMSRemotingConnection rc = ((ClientConnectionDelegate)((JBossConnection)conn1).
getDelegate()).getRemotingConnection();
@@ -2186,6 +2047,11 @@
}
// Private --------------------------------------------------------------------------------------
+
+ private Connection createConnectionOnServer1() throws Exception
+ {
+ return createConnectionOnServer(cf, 1);
+ }
private void simpleFailover(String userName, String password) throws Exception
{
@@ -2271,16 +2137,10 @@
try
{
- conn0 = cf.createConnection();
+ conn = createConnectionOnServer(cf, 1);
- assertEquals(0, ((JBossConnection)conn0).getServerID());
+ assertEquals(1, getServerId(conn));
- conn0.close();
-
- conn = cf.createConnection();
-
- assertEquals(1, ((JBossConnection)conn).getServerID());
-
// we "cripple" the remoting connection by removing ConnectionListener. This way, failures
// cannot be "cleanly" detected by the client-side pinger, and we'll fail on an invocation
JMSRemotingConnection rc = ((ClientConnectionDelegate)((JBossConnection)conn).
Modified: trunk/tests/src/org/jboss/test/messaging/jms/clustering/HATest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/clustering/HATest.java 2007-07-04 11:47:45 UTC (rev 2836)
+++ trunk/tests/src/org/jboss/test/messaging/jms/clustering/HATest.java 2007-07-04 13:09:09 UTC (rev 2837)
@@ -24,7 +24,6 @@
import java.util.Map;
import java.util.Set;
-import java.util.ArrayList;
import javax.jms.*;
@@ -185,7 +184,7 @@
try
{
- conn1 = factory.createConnection(); //server 0
+ conn1 = createConnectionOnServer(factory, 0); //server 0
conn2 = factory.createConnection(); //server 1
@@ -195,26 +194,16 @@
conn5 = factory.createConnection(); //server 1
- ConnectionState state1 = (ConnectionState)(((DelegateSupport)((JBossConnection)conn1).getDelegate()).getState());
+ int serverID1 = getServerId(conn1);
- ConnectionState state2 = (ConnectionState)(((DelegateSupport)((JBossConnection)conn2).getDelegate()).getState());
+ int serverID2 = getServerId(conn2);
- ConnectionState state3 = (ConnectionState)(((DelegateSupport)((JBossConnection)conn3).getDelegate()).getState());
+ int serverID3 = getServerId(conn3);
- ConnectionState state4 = (ConnectionState)(((DelegateSupport)((JBossConnection)conn4).getDelegate()).getState());
+ int serverID4 = getServerId(conn4);
- ConnectionState state5 = (ConnectionState)(((DelegateSupport)((JBossConnection)conn5).getDelegate()).getState());
+ int serverID5 = getServerId(conn5);
- int serverID1 = state1.getServerID();
-
- int serverID2 = state2.getServerID();
-
- int serverID3 = state3.getServerID();
-
- int serverID4 = state4.getServerID();
-
- int serverID5 = state5.getServerID();
-
log.info("server id 1: " + serverID1);
log.info("server id 2: " + serverID2);
@@ -536,22 +525,10 @@
try
{
- conn = factory.createConnection(); //connection on server 0
+ conn = createConnectionOnServer(factory, 1);
- conn.close();
+ assertEquals(1, getServerId(conn));
- conn = factory.createConnection(); //connection on server 1
-
- JBossConnection jbc = (JBossConnection)conn;
-
- ClientConnectionDelegate del = (ClientConnectionDelegate)jbc.getDelegate();
-
- ConnectionState state = (ConnectionState)del.getState();
-
- int initialServerID = state.getServerID();
-
- assertEquals(1, initialServerID);
-
Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
MessageProducer prod = sess.createProducer(queue[1]);
@@ -586,10 +563,8 @@
log.info("done wait");
- state = (ConnectionState)del.getState();
+ int finalServerID = getServerId(conn);
- int finalServerID = state.getServerID();
-
log.info("final server id= " + finalServerID);
//server id should now be 2
@@ -654,10 +629,6 @@
Queue anotherQueue = (Queue)ic[1].lookup("queue/anotherQueue");
- ClientClusteredConnectionFactoryDelegate delegate =
- (ClientClusteredConnectionFactoryDelegate)factory.getDelegate();
-
-
JBossConnection conn0 = (JBossConnection) factory.createConnection();
JBossConnection conn1 = (JBossConnection) factory.createConnection();
JBossConnection conn2 = (JBossConnection) factory.createConnection();
Modified: trunk/tests/src/org/jboss/test/messaging/jms/clustering/LoadBalancingTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/clustering/LoadBalancingTest.java 2007-07-04 11:47:45 UTC (rev 2836)
+++ trunk/tests/src/org/jboss/test/messaging/jms/clustering/LoadBalancingTest.java 2007-07-04 13:09:09 UTC (rev 2837)
@@ -70,15 +70,15 @@
Connection conn0 = cf.createConnection();
- assertEquals(0, ((JBossConnection)conn0).getServerID());
+ assertEquals(0, getServerId(conn0));
Connection conn1 = cf.createConnection();
- assertEquals(0, ((JBossConnection)conn1).getServerID());
+ assertEquals(0, getServerId(conn1));
Connection conn2 = cf.createConnection();
- assertEquals(0, ((JBossConnection)conn2).getServerID());
+ assertEquals(0, getServerId(conn2));
conn0.close();
conn1.close();
@@ -117,24 +117,27 @@
clusteredDelegate.getLoadBalancingPolicy().getClass());
Connection conn0 = cf.createConnection();
+
+ final int oneId = getServerId(conn0);
+ final int otherId = 1 - oneId;
- assertEquals(0, ((JBossConnection)conn0).getServerID());
+ assertEquals(oneId, getServerId(conn0));
Connection conn1 = cf.createConnection();
- assertEquals(1, ((JBossConnection)conn1).getServerID());
+ assertEquals(otherId, getServerId(conn1));
Connection conn2 = cf.createConnection();
- assertEquals(0, ((JBossConnection)conn2).getServerID());
+ assertEquals(oneId, getServerId(conn2));
Connection conn3 = cf.createConnection();
- assertEquals(1, ((JBossConnection)conn3).getServerID());
+ assertEquals(otherId, getServerId(conn3));
Connection conn4 = cf.createConnection();
- assertEquals(0, ((JBossConnection)conn4).getServerID());
+ assertEquals(oneId, getServerId(conn4));
conn0.close();
conn1.close();
@@ -150,7 +153,42 @@
ServerManagement.stop(0);
}
}
+
+ public void testRoundRobinLoadBalancingStartsWithRandomNode() throws Exception
+ {
+ // Make sure all servers are created and started; make sure that database is zapped ONLY for
+ // the first server, the others rely on values they expect to find in shared tables; don't
+ // clear the database for those.
+ ServerManagement.start(0, "all", true);
+ ServerManagement.start(1, "all", false);
+
+ try
+ {
+ int[] counts = new int[2];
+
+ for (int i = 0; i < 10; i++)
+ {
+ InitialContext ic = new InitialContext(ServerManagement.getJNDIEnvironment(0));
+ ConnectionFactory cf = (ConnectionFactory)ic.lookup("/ClusteredConnectionFactory");
+ Connection firstConnection = cf.createConnection();
+ int serverPeerID = getServerId(firstConnection);
+ firstConnection.close();
+ ic.close();
+
+ counts[serverPeerID]++;
+ }
+
+ assertTrue("Should have connected to ServerPeer 0 at least once", counts[0] > 0);
+ assertTrue("Should have connected to ServerPeer 1 at least once", counts[1] > 0);
+ }
+ finally
+ {
+ ServerManagement.stop(1);
+ ServerManagement.stop(0);
+ }
+ }
+
public void testRandomRobinLoadBalancingSingleNode() throws Exception
{
// Make sure all servers are created and started; make sure that database is zapped ONLY for
Modified: trunk/tests/src/org/jboss/test/messaging/jms/clustering/MergeQueueTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/clustering/MergeQueueTest.java 2007-07-04 11:47:45 UTC (rev 2836)
+++ trunk/tests/src/org/jboss/test/messaging/jms/clustering/MergeQueueTest.java 2007-07-04 13:09:09 UTC (rev 2837)
@@ -52,9 +52,9 @@
{
// Objects Server0
- conn0 = cf.createConnection();
+ conn0 = createConnectionOnServer(cf, 0);
- assertEquals(0, ((JBossConnection)conn0).getServerID());
+ assertEquals(0, getServerId(conn0));
Session session0 = conn0.createSession(true, Session.SESSION_TRANSACTED);
@@ -90,7 +90,7 @@
// Objects Server1
conn1 = cf.createConnection();
- assertEquals(1, ((JBossConnection)conn1).getServerID());
+ assertEquals(1, getServerId(conn1));
conn1.start();
@@ -144,9 +144,9 @@
{
// Objects Server0
- conn0 = cf.createConnection();
+ conn0 = createConnectionOnServer(cf, 0);
- assertEquals(0, ((JBossConnection)conn0).getServerID());
+ assertEquals(0, getServerId(conn0));
Session session0 = conn0.createSession(true, Session.SESSION_TRANSACTED);
@@ -183,7 +183,7 @@
// Objects Server1
conn1 = cf.createConnection();
- assertEquals(1, ((JBossConnection)conn1).getServerID());
+ assertEquals(1, getServerId(conn1));
conn1.start();
@@ -276,13 +276,13 @@
try
{
// Objects Server0
- conn0 = cf.createConnection();
+ conn0 = createConnectionOnServer(cf, 0);
- assertEquals(0, ((JBossConnection)conn0).getServerID());
+ assertEquals(0, getServerId(conn0));
conn1 = cf.createConnection();
- assertEquals(1, ((JBossConnection)conn1).getServerID());
+ assertEquals(1, getServerId(conn1));
//Send some messages on node 0
@@ -476,13 +476,13 @@
Queue queue1 = (Queue)ic[1].lookup("queue/constrainedQueue");
// Objects Server0
- conn0 = cf.createConnection();
+ conn0 = createConnectionOnServer(cf, 0);
- assertEquals(0, ((JBossConnection)conn0).getServerID());
+ assertEquals(0, getServerId(conn0));
conn1 = cf.createConnection();
- assertEquals(1, ((JBossConnection)conn1).getServerID());
+ assertEquals(1, getServerId(conn1));
//Send some messages on node 0
Modified: trunk/tests/src/org/jboss/test/messaging/jms/clustering/XAFailoverTest.java
===================================================================
--- trunk/tests/src/org/jboss/test/messaging/jms/clustering/XAFailoverTest.java 2007-07-04 11:47:45 UTC (rev 2836)
+++ trunk/tests/src/org/jboss/test/messaging/jms/clustering/XAFailoverTest.java 2007-07-04 13:09:09 UTC (rev 2837)
@@ -100,15 +100,11 @@
try
{
- // skip connection to node 0
- conn = xaCF.createXAConnection();
- conn.close();
-
// create a connection to node 1
- conn = xaCF.createXAConnection();
+ conn = createXAConnectionOnServer(xaCF, 1);
conn.start();
- assertEquals(1, ((JBossConnection)conn).getServerID());
+ assertEquals(1, getServerId(conn));
// register a failover listener
SimpleFailoverListener failoverListener = new SimpleFailoverListener();
@@ -140,7 +136,7 @@
// failover complete
log.info("failover completed");
- assertEquals(0, ((JBossConnection)conn).getServerID());
+ assertEquals(0, getServerId(conn));
}
finally
@@ -163,20 +159,14 @@
try
{
- // skip connection to node 0
- xaConn = xaCF.createXAConnection();
- xaConn.close();
-
// create a connection to node 1
- xaConn = xaCF.createXAConnection();
+ xaConn = createXAConnectionOnServer(xaCF, 1);
- assertEquals(1, ((JBossConnection)xaConn).getServerID());
+ assertEquals(1, getServerId(xaConn));
- conn = cf.createConnection();
- conn.close();
- conn = cf.createConnection();
+ conn = createConnectionOnServer(cf, 1);
- assertEquals(1, ((JBossConnection)conn).getServerID());
+ assertEquals(1, getServerId(conn));
conn.start();
@@ -269,7 +259,7 @@
assertNull(m);
- assertEquals(0, ((JBossConnection)xaConn).getServerID());
+ assertEquals(0, getServerId(xaConn));
}
finally
@@ -692,15 +682,13 @@
// Sending a messages
{
- Connection conn1 = null;
+ Connection conn1 = createConnectionOnServer(cf, 0);
- conn1 = cf.createConnection();
+ assertEquals(0, getServerId(conn1));
- assertEquals(0, ((JBossConnection)conn1).getServerID());
-
conn1 = cf.createConnection();
- assertEquals(1, ((JBossConnection)conn1).getServerID());
+ assertEquals(1, getServerId(conn1));
//Send a message
@@ -718,14 +706,9 @@
try
{
- xaConn1 = xaCF.createXAConnection();
-
- assertEquals(0, ((JBossConnection)xaConn1).getServerID());
+ xaConn1 = createXAConnectionOnServer(xaCF, 1);
+ assertEquals(1, getServerId(xaConn1));
- xaConn1 = xaCF.createXAConnection();
-
- assertEquals(1, ((JBossConnection)xaConn1).getServerID());
-
xaConn1.start();
@@ -814,7 +797,7 @@
{
conn = cf.createConnection();
- assertEquals(0, ((JBossConnection)conn).getServerID());
+ assertEquals(0, getServerId(conn));
conn.start();
@@ -847,7 +830,7 @@
assertEquals(1, numberOfReceivedMessages);
- assertEquals(0, ((JBossConnection)xaConn1).getServerID());
+ assertEquals(0, getServerId(xaConn1));
}
finally
{
@@ -857,7 +840,7 @@
}
}
- assertEquals(0, ((JBossConnection)xaConn1).getServerID());
+ assertEquals(0, getServerId(xaConn1));
}
finally
{
More information about the jboss-cvs-commits
mailing list