XASession sess2 = conn2.createXASession();
XAResource res1 = sess2.getXAResource();
//Pretend to be a transaction manager by interacting through the XAResources
Xid xid1 = new MessagingXid("tx1".getBytes(), 42, "abcdef".getBytes());
res1.start(xid1, XAResource.TMNOFLAGS);
MessageConsumer cons = sess2.createConsumer(queue4);
conn2.start();
//Consume the message
TextMessage rm1 = (TextMessage)cons.receive(1000);
assertNotNull(rm1);
assertEquals(tm1.getText(), rm1.getText());
res1.end(xid1, XAResource.TMSUCCESS);
//prepare the tx
res1.prepare(xid1);
conn1.close();
conn2.close();
conn1 = null;
conn2 = null;
//Now receive again
conn3 = cf.createXAConnection();
XASession sess3 = conn3.createXASession();
XAResource res3 = sess3.getXAResource();
Xid xid2 = new MessagingXid("tx2".getBytes(), 42, "ghijkl".getBytes());
res3.start(xid2, XAResource.TMNOFLAGS);
MessageConsumer cons3 = sess3.createConsumer(queue4);