public static Xid decodeXid(final ActiveMQBuffer in) { int formatID = in.readInt(); byte[] bq = new byte[in.readInt()]; in.readBytes(bq); byte[] gtxid = new byte[in.readInt()]; in.readBytes(gtxid); Xid xid = new XidImpl(bq, formatID, gtxid); return xid; }
protected XidImpl newXID(byte[] bytes) { return new XidImpl("amqp".getBytes(), 1, bytes); }
protected XidImpl newXID(byte[] bytes) { return new XidImpl("amqp".getBytes(), 1, bytes); }
public static XidImpl toXID(XATransactionId xaXid) { return new XidImpl(xaXid.getBranchQualifier(), xaXid.getFormatId(), xaXid.getGlobalTransactionId()); } }
XADummyEndpoint(CountDownLatch latch) { super(latch); xid = new XidImpl("xa1".getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes()); }
protected XidImpl newXID() { return new XidImpl("xa1".getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes()); }
public static Xid decodeXid(final ActiveMQBuffer in) { int formatID = in.readInt(); byte[] bq = new byte[in.readInt()]; in.readBytes(bq); byte[] gtxid = new byte[in.readInt()]; in.readBytes(gtxid); Xid xid = new XidImpl(bq, formatID, gtxid); return xid; }
public static Xid decodeXid(final ActiveMQBuffer in) { int formatID = in.readInt(); byte[] bq = new byte[in.readInt()]; in.readBytes(bq); byte[] gtxid = new byte[in.readInt()]; in.readBytes(gtxid); Xid xid = new XidImpl(bq, formatID, gtxid); return xid; }
public static Xid decodeXid(final ActiveMQBuffer in) { int formatID = in.readInt(); byte[] bq = new byte[in.readInt()]; in.readBytes(bq); byte[] gtxid = new byte[in.readInt()]; in.readBytes(gtxid); Xid xid = new XidImpl(bq, formatID, gtxid); return xid; }
public static Xid decodeXid(final ActiveMQBuffer in) { int formatID = in.readInt(); byte[] bq = new byte[in.readInt()]; in.readBytes(bq); byte[] gtxid = new byte[in.readInt()]; in.readBytes(gtxid); Xid xid = new XidImpl(bq, formatID, gtxid); return xid; }
public static Xid decodeXid(final ActiveMQBuffer in) { int formatID = in.readInt(); byte[] bq = new byte[in.readInt()]; in.readBytes(bq); byte[] gtxid = new byte[in.readInt()]; in.readBytes(gtxid); Xid xid = new XidImpl(bq, formatID, gtxid); return xid; }
public static Xid decodeXid(final ActiveMQBuffer in) { int formatID = in.readInt(); byte[] bq = new byte[in.readInt()]; in.readBytes(bq); byte[] gtxid = new byte[in.readInt()]; in.readBytes(gtxid); Xid xid = new XidImpl(bq, formatID, gtxid); return xid; }
/** * In case a timeout happens the server's object may still have the previous XID. * for that reason a new start call is supposed to clean it up with a log.warn * but it should still succeed * * @throws Exception */ @Test public void testChangeXID() throws Exception { Xid xid = new XidImpl("xa1".getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes()); Xid xid2 = new XidImpl("xa1".getBytes(), 1, UUIDGenerator.getInstance().generateStringUUID().getBytes()); clientSession.start(xid, XAResource.TMNOFLAGS); clientSession.start(xid2, XAResource.TMNOFLAGS); }
public static Xid randomXid() { return new XidImpl(randomBytes(), randomInt(), randomBytes()); } }
@Test(timeout = 120000) public void testXAMessagesNotSentSoNoRollbackOnCommit() throws Exception { createSessionFactory(); ClientSession session = createSession(sf, true, false, false); Xid xid = new XidImpl("uhuhuhu".getBytes(), 126512, "auhsduashd".getBytes()); session.createQueue(FailoverTestBase.ADDRESS, RoutingType.MULTICAST, FailoverTestBase.ADDRESS, null, true); ClientProducer producer = session.createProducer(FailoverTestBase.ADDRESS); session.start(xid, XAResource.TMNOFLAGS); sendMessagesSomeDurable(session, producer); session.end(xid, XAResource.TMSUCCESS); session.prepare(xid); session.commit(xid, false); crash(session); ClientConsumer consumer = session.createConsumer(FailoverTestBase.ADDRESS); session.start(); Xid xid2 = new XidImpl("tfytftyf".getBytes(), 54654, "iohiuohiuhgiu".getBytes()); session.start(xid2, XAResource.TMNOFLAGS); receiveDurableMessages(consumer); session.end(xid2, XAResource.TMSUCCESS); session.prepare(xid2); session.commit(xid2, false); }
@Test(timeout = 120000) public void testXAMessagesConsumedSoRollbackOnEnd() throws Exception { createSessionFactory(); ClientSession session1 = createSessionAndQueue(); ClientProducer producer = session1.createProducer(FailoverTestBase.ADDRESS); sendMessagesSomeDurable(session1, producer); session1.commit(); ClientSession session2 = createSession(sf, true, false, false); ClientConsumer consumer = session2.createConsumer(FailoverTestBase.ADDRESS); session2.start(); Xid xid = new XidImpl("uhuhuhu".getBytes(), 126512, "auhsduashd".getBytes()); session2.start(xid, XAResource.TMNOFLAGS); receiveMessages(consumer); crash(session2); try { session2.end(xid, XAResource.TMSUCCESS); Assert.fail("Should throw exception"); } catch (XAException e) { Assert.assertEquals(XAException.XAER_RMFAIL, e.errorCode); } }
@Test(timeout = 120000) public void testXAMessagesConsumedSoRollbackOnPrepare() throws Exception { createSessionFactory(); ClientSession session1 = createSessionAndQueue(); ClientProducer producer = session1.createProducer(FailoverTestBase.ADDRESS); sendMessagesSomeDurable(session1, producer); session1.commit(); ClientSession session2 = createSession(sf, true, false, false); ClientConsumer consumer = session2.createConsumer(FailoverTestBase.ADDRESS); session2.start(); Xid xid = new XidImpl("uhuhuhu".getBytes(), 126512, "auhsduashd".getBytes()); session2.start(xid, XAResource.TMNOFLAGS); receiveMessages(consumer); session2.end(xid, XAResource.TMSUCCESS); crash(session2); try { session2.prepare(xid); Assert.fail("Should throw exception"); } catch (XAException e) { Assert.assertEquals(XAException.XAER_RMFAIL, e.errorCode); } }
@Test public void testXAResourceRolledBackSuspendedNotRemoved() throws Exception { Queue queue = null; Xid xid = newXID(); try (XAConnection xaconnection = xaFactory.createXAConnection()) { XASession session = xaconnection.createXASession(); queue = session.createQueue(queueName); session.getXAResource().start(xid, XAResource.TMNOFLAGS); session.getXAResource().end(xid, XAResource.TMSUSPEND); XidImpl xid1 = new XidImpl(xid); Transaction transaction = server.getResourceManager().getTransaction(xid1); //directly suspend the tx transaction.suspend(); session.getXAResource().rollback(xid); } catch (XAException ex) { //ignore } finally { XidImpl xid1 = new XidImpl(xid); Transaction transaction = server.getResourceManager().getTransaction(xid1); assertNotNull(transaction); } }
@Test public void testXAResourceCommittedRemoved() throws Exception { Queue queue = null; Xid xid = newXID(); try (XAConnection xaconnection = xaFactory.createXAConnection()) { XASession session = xaconnection.createXASession(); queue = session.createQueue(queueName); session.getXAResource().start(xid, XAResource.TMNOFLAGS); MessageProducer producer = session.createProducer(queue); producer.send(session.createTextMessage("xa message")); session.getXAResource().end(xid, XAResource.TMSUCCESS); session.getXAResource().commit(xid, true); } XidImpl xid1 = new XidImpl(xid); Transaction transaction = server.getResourceManager().getTransaction(xid1); assertNull(transaction); }
@Test public void testXAResourceRolledBackRemoved() throws Exception { Queue queue = null; Xid xid = newXID(); try (XAConnection xaconnection = xaFactory.createXAConnection()) { XASession session = xaconnection.createXASession(); queue = session.createQueue(queueName); session.getXAResource().start(xid, XAResource.TMNOFLAGS); MessageProducer producer = session.createProducer(queue); producer.send(session.createTextMessage("xa message")); session.getXAResource().end(xid, XAResource.TMSUCCESS); session.getXAResource().rollback(xid); } XidImpl xid1 = new XidImpl(xid); Transaction transaction = server.getResourceManager().getTransaction(xid1); assertNull(transaction); }