[jboss-cvs] JBoss Messaging SVN: r1655 - branches/Branch_1_0_XARecovery/tests/src/org/jboss/test/messaging/jms
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Nov 29 20:55:04 EST 2006
Author: juha at jboss.org
Date: 2006-11-29 20:55:01 -0500 (Wed, 29 Nov 2006)
New Revision: 1655
Modified:
branches/Branch_1_0_XARecovery/tests/src/org/jboss/test/messaging/jms/XARecoveryTest.java
Log:
reenable the recovery test (sans JBossTS coordinator)
Modified: branches/Branch_1_0_XARecovery/tests/src/org/jboss/test/messaging/jms/XARecoveryTest.java
===================================================================
--- branches/Branch_1_0_XARecovery/tests/src/org/jboss/test/messaging/jms/XARecoveryTest.java 2006-11-30 01:50:58 UTC (rev 1654)
+++ branches/Branch_1_0_XARecovery/tests/src/org/jboss/test/messaging/jms/XARecoveryTest.java 2006-11-30 01:55:01 UTC (rev 1655)
@@ -21,15 +21,24 @@
*/
package org.jboss.test.messaging.jms;
+import javax.jms.Connection;
import javax.jms.Destination;
+import javax.jms.MessageConsumer;
+import javax.jms.MessageProducer;
+import javax.jms.Session;
+import javax.jms.TextMessage;
+import javax.jms.XAConnection;
import javax.jms.XASession;
-import javax.jms.XAConnection;
import javax.naming.InitialContext;
+import javax.transaction.TransactionManager;
import javax.transaction.xa.XAResource;
+import javax.transaction.xa.Xid;
import org.jboss.jms.client.JBossConnectionFactory;
+import org.jboss.messaging.core.tx.XidImpl;
import org.jboss.test.messaging.MessagingTestCase;
import org.jboss.test.messaging.tools.ServerManagement;
+import org.jboss.test.messaging.util.TransactionManagerLocator;
/**
* @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
@@ -46,8 +55,10 @@
protected InitialContext initialContext;
protected JBossConnectionFactory cf;
- protected Destination queue;
+ protected Destination queue;
+ TransactionManager tm;
+
// Constructors --------------------------------------------------
public XARecoveryTest(String name)
@@ -67,7 +78,7 @@
cf = (JBossConnectionFactory)initialContext.lookup("/ConnectionFactory");
- //if (!ServerManagement.isRemote()) tm = TransactionManagerLocator.getInstance().locate();
+ if (!ServerManagement.isRemote()) tm = TransactionManagerLocator.getInstance().locate();
ServerManagement.undeployQueue("Queue");
ServerManagement.deployQueue("Queue");
@@ -85,17 +96,20 @@
// Public --------------------------------------------------------
- //TODO Re-enable when we complete XA Recovery
-
- public void testNoop()
+ /*
+ public void testJBossTSCoordinator() throws Exception
{
-
+ UserTransaction ut = com.arjuna.ats.jta.UserTransaction.userTransaction();
+
+ ut.begin();
+
+
+ ut.commit();
}
-
+ */
- public void test1() throws Exception
+ public void testMockCoordinatorRecovery() throws Exception
{
- System.out.println("=========================Execute single test");
XAConnection conn1 = cf.createXAConnection();
@@ -108,92 +122,83 @@
XAResource res1 = sess1.getXAResource();
XAResource res2 = sess2.getXAResource();
-//
-// //Pretend to be a transaction manager by interacting through the XAResources
-// Xid xid1 = new XidImpl("bq1".getBytes(), 123, "gbtxid1".getBytes());
-// Xid xid2 = new XidImpl("bq2".getBytes(), 124, "gbtxid2".getBytes());
-//
-//
-//// Send a message in each tx
-//
-//
-// res1.start(xid1, XAResource.TMNOFLAGS);
-//
-// MessageProducer prod1 = sess1.createProducer(queue);
-//
-// TextMessage tm1 = sess1.createTextMessage("testing1");
-//
-// prod1.send(tm1);
-//
-// res1.end(xid1, XAResource.TMSUCCESS);
-//
-//
-//
-//
-// res2.start(xid2, XAResource.TMNOFLAGS);
-//
-// MessageProducer prod2 = sess2.createProducer(queue);
-//
-// TextMessage tm2 = sess2.createTextMessage("testing2");
-//
-// prod2.send(tm2);
-//
-// res2.end(xid2, XAResource.TMSUCCESS);
-//
-// //prepare both txs
-//
-//
-// res1.prepare(xid1);
-// res2.prepare(xid2);
-//
-// //Now "crash" the server
-//
-// ServerManagement.stopServerPeer();
-//
-// ServerManagement.startServerPeer();
-//
-// //Now lookup the recoverable in JNDI
-// InitialContext ic = new InitialContext();
-// JMSRecoverable recoverable = (JMSRecoverable)ic.lookup("/" +
-// ServerPeer.RECOVERABLE_CTX_NAME + "/"+ ServerManagement.getServerPeer().getServerPeerID());
-//
-// XAResource res = recoverable.getResource();
-//
-// Xid[] xids = res.recover(XAResource.TMSTARTRSCAN);
-// assertEquals(2, xids.length);
-//
-// Xid[] xids2 = res.recover(XAResource.TMENDRSCAN);
-// assertEquals(0, xids2.length);
-//
-// assertTrue(xids[0].equals(xid1) || xids[1].equals(xid1));
-// assertTrue(xids[0].equals(xid2) || xids[1].equals(xid2));
-//
-// res.commit(xid1, false);
-//
-// res.commit(xid2, false);
-//
-// recoverable.cleanUp();
-//
-// ServerManagement.deployQueue("Queue");
-//
-// Connection conn3 = cf.createConnection();
-//
-// Session sessRec = conn3.createSession(false, Session.AUTO_ACKNOWLEDGE);
-// MessageConsumer cons = sessRec.createConsumer(queue);
-// conn3.start();
-//
-// TextMessage m2 = (TextMessage)cons.receiveNoWait();
-// assertNotNull(m2);
-// assertEquals("testing1", m2.getText());
-//
-//
-// TextMessage m3 = (TextMessage)cons.receiveNoWait();
-// assertNotNull(m3);
-// assertEquals("testing2", m3.getText());
-//
-// conn3.close();
-//
+
+ //Pretend to be a transaction manager by interacting through the XAResources
+ Xid xid1 = new XidImpl("bq1".getBytes(), 123, "gbtxid1".getBytes());
+ Xid xid2 = new XidImpl("bq2".getBytes(), 124, "gbtxid2".getBytes());
+
+ // Send a message in each tx
+
+ res1.start(xid1, XAResource.TMNOFLAGS);
+
+ MessageProducer prod1 = sess1.createProducer(queue);
+
+ TextMessage tm1 = sess1.createTextMessage("testing1");
+
+ prod1.send(tm1);
+
+ res1.end(xid1, XAResource.TMSUCCESS);
+
+
+ res2.start(xid2, XAResource.TMNOFLAGS);
+
+ MessageProducer prod2 = sess2.createProducer(queue);
+
+ TextMessage tm2 = sess2.createTextMessage("testing2");
+
+ prod2.send(tm2);
+
+ res2.end(xid2, XAResource.TMSUCCESS);
+
+ //prepare both txs
+
+
+ res1.prepare(xid1);
+ res2.prepare(xid2);
+
+ //Now "crash" the server
+
+ ServerManagement.stopServerPeer();
+
+ ServerManagement.startServerPeer();
+
+
+ XAResource res = cf.createXAConnection().createXASession().getXAResource();
+
+ Xid[] xids = res.recover(XAResource.TMSTARTRSCAN);
+ assertEquals(2, xids.length);
+
+ Xid[] xids2 = res.recover(XAResource.TMENDRSCAN);
+ assertEquals(0, xids2.length);
+
+ assertTrue(xids[0].equals(xid1) || xids[1].equals(xid1));
+ assertTrue(xids[0].equals(xid2) || xids[1].equals(xid2));
+
+ res.commit(xid1, false);
+
+ res.commit(xid2, false);
+
+ ServerManagement.deployQueue("Queue");
+
+ Connection conn3 = cf.createConnection();
+
+ Session sessRec = conn3.createSession(false, Session.AUTO_ACKNOWLEDGE);
+ MessageConsumer cons = sessRec.createConsumer(queue);
+ conn3.start();
+
+ TextMessage m1 = (TextMessage)cons.receiveNoWait();
+ assertNotNull(m1);
+ assertEquals("testing1", m1.getText());
+
+ TextMessage m2 = (TextMessage)cons.receiveNoWait();
+ assertNotNull(m2);
+
+ assertEquals("testing2", m2.getText());
+
+ conn3.close();
+
}
-
+
+
}
More information about the jboss-cvs-commits
mailing list