[jboss-cvs] JBoss Messaging SVN: r7914 - branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/server.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Dec 2 02:24:15 EST 2009
Author: gaohoward
Date: 2009-12-02 02:24:14 -0500 (Wed, 02 Dec 2009)
New Revision: 7914
Modified:
branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/server/ServerPeerTest.java
Log:
JBMESSAGING-1772
Modified: branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/server/ServerPeerTest.java
===================================================================
--- branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/server/ServerPeerTest.java 2009-12-01 13:32:42 UTC (rev 7913)
+++ branches/Branch_1_4/tests/src/org/jboss/test/messaging/jms/server/ServerPeerTest.java 2009-12-02 07:24:14 UTC (rev 7914)
@@ -214,7 +214,6 @@
assertEquals(on, defaultExpiry);
}
-
public void testRetrievePreparedTransactions() throws Exception
{
if(!ServerManagement.isServerPeerStarted())
@@ -645,7 +644,330 @@
}
+ //https://jira.jboss.org/jira/browse/JBMESSAGING-1772
+ public void testListPreparedTransactions() throws Exception
+ {
+ if(!ServerManagement.isServerPeerStarted())
+ {
+ ServerManagement.startServerPeer();
+ }
+
+ XAConnectionFactory cf = (XAConnectionFactory)initialContext.lookup("/ConnectionFactory");
+
+ ServerManagement.deployQueue("Queue");
+ Queue queue = (Queue)initialContext.lookup("/queue/Queue");
+
+ XAConnection conn = null;
+
+ try
+ {
+ conn = cf.createXAConnection();
+
+ Xid xid1, xid2;
+
+ {
+
+ XASession sess = conn.createXASession();
+
+ XAResource res = sess.getXAResource();
+
+ MessageProducer prod = sess.createProducer(queue);
+
+ xid1 = new MessagingXid("list-blah1".getBytes(), 43, "list-blahblah1".getBytes());
+
+ TextMessage tm = sess.createTextMessage("message-list");
+
+ res.start(xid1, XAResource.TMNOFLAGS);
+
+ prod.send(tm);
+
+ res.end(xid1, XAResource.TMSUCCESS);
+
+ res.prepare(xid1);
+
+ }
+
+ {
+
+ XASession sess = conn.createXASession();
+
+ XAResource res = sess.getXAResource();
+
+ MessageProducer prod = sess.createProducer(queue);
+
+ xid2 = new MessagingXid("list-blah2".getBytes(), 43, "list-blahblah2".getBytes());
+
+ TextMessage tm = sess.createTextMessage("message1-list");
+
+ res.start(xid2, XAResource.TMNOFLAGS);
+
+ prod.send(tm);
+
+ res.end(xid2, XAResource.TMSUCCESS);
+
+ res.prepare(xid2);
+
+ }
+
+ List txList = (List)ServerManagement.invoke(ServerManagement.getServerPeerObjectName(),
+ "listPreparedTransactions", null, null);
+
+ assertNotNull(txList);
+
+ assertEquals(2, txList.size());
+
+ String rxid1 = (String)txList.get(0);
+
+ String rxid2 = (String)txList.get(1);
+
+ //tx.getId() + " : " + txid.toString()
+ String txId1 = rxid1.substring(0, rxid1.indexOf(':'));
+ String txId2 = rxid2.substring(0, rxid2.indexOf(':'));
+ log.info("txId1: " + txId1 + " txId2: " + txId2);
+
+ Long.valueOf(txId1.trim());
+ Long.valueOf(txId2.trim());
+
+ String xidStr1 = rxid1.substring(rxid1.indexOf(':') + 2, (rxid1.length()));
+ String xidStr2 = rxid2.substring(rxid2.indexOf(':') + 2, (rxid2.length()));
+ log.info("xidStr1: " + xidStr1 + " xidStr2: " + xidStr2);
+ log.info("xid1: " + xid1.toString());
+ log.info("xid2: " + xid2.toString());
+ boolean ok = (xidStr1.trim().equals(xid1.toString()) && xidStr2.trim().equals(xid2.toString())) ||
+ (xidStr2.trim().equals(xid1.toString()) && xidStr1.trim().equals(xid2.toString()));
+
+ assertTrue(ok);
+ }
+ finally
+ {
+ if (conn != null)
+ {
+ conn.close();
+ }
+
+ ServerManagement.undeployQueue("Queue");
+ }
+ }
+
+ //https://jira.jboss.org/jira/browse/JBMESSAGING-1772
+ public void testCommitPreparedTransaction() throws Exception
+ {
+ if(!ServerManagement.isServerPeerStarted())
+ {
+ ServerManagement.startServerPeer();
+ }
+
+ XAConnectionFactory cf = (XAConnectionFactory)initialContext.lookup("/ConnectionFactory");
+
+ ServerManagement.deployQueue("Queue");
+
+ Queue queue = (Queue)initialContext.lookup("/queue/Queue");
+
+ XAConnection conn = null;
+
+ try
+ {
+ conn = cf.createXAConnection();
+
+ Xid xid1, xid2;
+
+ {
+
+ XASession sess = conn.createXASession();
+
+ XAResource res = sess.getXAResource();
+
+ MessageProducer prod = sess.createProducer(queue);
+
+ xid1 = new MessagingXid("list-blah1".getBytes(), 43, "list-blahblah1".getBytes());
+
+ TextMessage tm = sess.createTextMessage("message-list");
+
+ res.start(xid1, XAResource.TMNOFLAGS);
+
+ prod.send(tm);
+
+ res.end(xid1, XAResource.TMSUCCESS);
+
+ res.prepare(xid1);
+
+ }
+
+ {
+
+ XASession sess = conn.createXASession();
+
+ XAResource res = sess.getXAResource();
+
+ MessageProducer prod = sess.createProducer(queue);
+
+ xid2 = new MessagingXid("list-blah2".getBytes(), 43, "list-blahblah2".getBytes());
+
+ TextMessage tm = sess.createTextMessage("message1-list");
+
+ res.start(xid2, XAResource.TMNOFLAGS);
+
+ prod.send(tm);
+
+ res.end(xid2, XAResource.TMSUCCESS);
+
+ res.prepare(xid2);
+
+ }
+
+ List txList = (List)ServerManagement.invoke(ServerManagement.getServerPeerObjectName(),
+ "listPreparedTransactions", null, null);
+
+ assertNotNull(txList);
+
+ assertEquals(2, txList.size());
+
+ String rxid1 = (String)txList.get(0);
+
+ String rxid2 = (String)txList.get(1);
+
+ //tx.getId() + " : " + txid.toString()
+ String txId1 = rxid1.substring(0, rxid1.indexOf(':'));
+ String txId2 = rxid2.substring(0, rxid2.indexOf(':'));
+ log.info("txId1: " + txId1 + " txId2: " + txId2);
+
+ Long tx1 = Long.valueOf(txId1.trim());
+ Long.valueOf(txId2.trim());
+
+ //now commit txId1
+ ServerManagement.invoke(ServerManagement.getServerPeerObjectName(),
+ "commitPreparedTransaction", new Object[]{tx1}, new String[] {"java.lang.Long"});
+
+ txList = (List)ServerManagement.invoke(ServerManagement.getServerPeerObjectName(),
+ "listPreparedTransactions", null, null);
+
+ assertEquals(1, txList.size());
+
+ String txLeft = (String)txList.get(0);
+ assertEquals(0, txLeft.indexOf(txId2.trim()));
+
+ }
+ finally
+ {
+ if (conn != null)
+ {
+ conn.close();
+ }
+
+ ServerManagement.undeployQueue("Queue");
+ }
+ }
+
+ //https://jira.jboss.org/jira/browse/JBMESSAGING-1772
+ public void testRollbackPreparedTransaction() throws Exception
+ {
+ if(!ServerManagement.isServerPeerStarted())
+ {
+ ServerManagement.startServerPeer();
+ }
+
+ XAConnectionFactory cf = (XAConnectionFactory)initialContext.lookup("/ConnectionFactory");
+
+ ServerManagement.deployQueue("Queue");
+
+ Queue queue = (Queue)initialContext.lookup("/queue/Queue");
+
+ XAConnection conn = null;
+
+ try
+ {
+ conn = cf.createXAConnection();
+
+ Xid xid1, xid2;
+
+ {
+
+ XASession sess = conn.createXASession();
+
+ XAResource res = sess.getXAResource();
+
+ MessageProducer prod = sess.createProducer(queue);
+
+ xid1 = new MessagingXid("list-blah1".getBytes(), 43, "list-blahblah1".getBytes());
+
+ TextMessage tm = sess.createTextMessage("message-list");
+
+ res.start(xid1, XAResource.TMNOFLAGS);
+
+ prod.send(tm);
+
+ res.end(xid1, XAResource.TMSUCCESS);
+
+ res.prepare(xid1);
+
+ }
+
+ {
+
+ XASession sess = conn.createXASession();
+
+ XAResource res = sess.getXAResource();
+
+ MessageProducer prod = sess.createProducer(queue);
+
+ xid2 = new MessagingXid("list-blah2".getBytes(), 43, "list-blahblah2".getBytes());
+
+ TextMessage tm = sess.createTextMessage("message1-list");
+
+ res.start(xid2, XAResource.TMNOFLAGS);
+
+ prod.send(tm);
+
+ res.end(xid2, XAResource.TMSUCCESS);
+
+ res.prepare(xid2);
+
+ }
+
+ List txList = (List)ServerManagement.invoke(ServerManagement.getServerPeerObjectName(),
+ "listPreparedTransactions", null, null);
+
+ assertNotNull(txList);
+
+ assertEquals(2, txList.size());
+
+ String rxid1 = (String)txList.get(0);
+
+ String rxid2 = (String)txList.get(1);
+
+ //tx.getId() + " : " + txid.toString()
+ String txId1 = rxid1.substring(0, rxid1.indexOf(':'));
+ String txId2 = rxid2.substring(0, rxid2.indexOf(':'));
+ log.info("txId1: " + txId1 + " txId2: " + txId2);
+
+ Long tx1 = Long.valueOf(txId1.trim());
+ Long.valueOf(txId2.trim());
+
+ //now rollback txId1
+ ServerManagement.invoke(ServerManagement.getServerPeerObjectName(),
+ "rollbackPreparedTransaction", new Object[]{tx1}, new String[] {"java.lang.Long"});
+
+ txList = (List)ServerManagement.invoke(ServerManagement.getServerPeerObjectName(),
+ "listPreparedTransactions", null, null);
+
+ assertEquals(1, txList.size());
+
+ String txLeft = (String)txList.get(0);
+ assertEquals(0, txLeft.indexOf(txId2.trim()));
+
+ }
+ finally
+ {
+ if (conn != null)
+ {
+ conn.close();
+ }
+
+ ServerManagement.undeployQueue("Queue");
+ }
+ }
+
// Package protected ---------------------------------------------
// Protected -----------------------------------------------------
More information about the jboss-cvs-commits
mailing list