当前位置: 首页>>代码示例>>Java>>正文


Java ClientSession.rollback方法代码示例

本文整理汇总了Java中org.apache.activemq.artemis.api.core.client.ClientSession.rollback方法的典型用法代码示例。如果您正苦于以下问题:Java ClientSession.rollback方法的具体用法?Java ClientSession.rollback怎么用?Java ClientSession.rollback使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.activemq.artemis.api.core.client.ClientSession的用法示例。


在下文中一共展示了ClientSession.rollback方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: testRollbackThenSend

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Test
public void testRollbackThenSend() throws Exception {
   ClientSession session = sf.createSession(false, false, false);

   session.start();

   final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue");

   session.createQueue(queueName, queueName, null, false);

   ClientProducer producer = session.createProducer(queueName);

   ClientConsumer consumer = session.createConsumer(queueName);

   ClientMessage message = createMessage(session, 0);
   SimpleString dupID1 = new SimpleString("abcdefg");
   message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID1.getData());
   message.putStringProperty("key", dupID1.toString());
   producer.send(message);

   session.rollback();

   message = createMessage(session, 0);
   message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID1.getData());
   message.putStringProperty("key", dupID1.toString());
   producer.send(message);

   session.commit();

   message = consumer.receive(5000);
   assertNotNull(message);
   assertTrue(message.getStringProperty("key").equals(dupID1.toString()));
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:34,代码来源:DuplicateDetectionTest.java

示例2: checkEmptyXID

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
private void checkEmptyXID(final Xid xid) throws Exception {
   ClientSessionFactory sf = createSessionFactory(locator);
   ClientSession session = sf.createSession(true, false, false);

   Xid[] xids = session.recover(XAResource.TMSTARTRSCAN);
   Assert.assertEquals(1, xids.length);
   Assert.assertEquals(xid, xids[0]);

   session.rollback(xid);

   session.close();
   sf.close();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:14,代码来源:NIOMultiThreadCompactorStressTest.java

示例3: testFailXID

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Test
public void testFailXID() throws Exception {
   Xid xid = newXID();
   ClientSession session = sessionFactory.createSession(true, false, false);
   session.start(xid, XAResource.TMNOFLAGS);
   session.end(xid, XAResource.TMFAIL);
   session.rollback(xid);

   session.close();

}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:12,代码来源:BasicXaTest.java

示例4: testAsyncConsumerRollback

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Test
public void testAsyncConsumerRollback() throws Exception {
   ActiveMQServer server = createServer(false);
   server.start();
   ServerLocator locator = createInVMNonHALocator().setBlockOnAcknowledge(true).setAckBatchSize(0);
   ClientSessionFactory cf = createSessionFactory(locator);
   ClientSession sendSession = cf.createSession(false, true, true);
   final ClientSession session = cf.createSession(false, true, false);
   sendSession.createQueue(addressA, queueA, false);
   ClientProducer cp = sendSession.createProducer(addressA);
   ClientConsumer cc = session.createConsumer(queueA);
   int numMessages = 100;
   for (int i = 0; i < numMessages; i++) {
      cp.send(sendSession.createMessage(false));
   }
   CountDownLatch latch = new CountDownLatch(numMessages);
   session.start();
   cc.setMessageHandler(new ackHandler(session, latch));
   Assert.assertTrue(latch.await(5, TimeUnit.SECONDS));
   Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
   Assert.assertEquals(numMessages, q.getDeliveringCount());
   Assert.assertEquals(numMessages, getMessageCount(q));
   session.stop();
   session.rollback();
   Assert.assertEquals(0, q.getDeliveringCount());
   Assert.assertEquals(numMessages, getMessageCount(q));
   latch = new CountDownLatch(numMessages);
   cc.setMessageHandler(new ackHandler(session, latch));
   session.start();
   Assert.assertTrue(latch.await(5, TimeUnit.SECONDS));
   sendSession.close();
   session.close();
   cf.close();

}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:36,代码来源:CommitRollbackTest.java

示例5: testPagedMessageDeliveredMultipleConsumersCorrectly

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Test
public void testPagedMessageDeliveredMultipleConsumersCorrectly() throws Exception {
   AddressSettings qs = new AddressSettings().setRedeliveryDelay(5000L);
   server.getAddressSettingsRepository().addMatch(atestq.toString(), qs);
   // then we create a client as normal
   ClientSessionFactory sessionFactory = createSessionFactory(locator);
   ClientSession session = sessionFactory.createSession(false, true, false);
   session.createQueue(atestq, atestq, null, true);
   session.createQueue(atestq, atestq2, null, true);
   ClientProducer producer = session.createProducer(atestq);
   ClientMessage message = createDurableMessage(session, "m1");
   producer.send(message);

   producer.close();

   ClientConsumer consumer = session.createConsumer(atestq);
   ClientConsumer consumer2 = session.createConsumer(atestq2);

   session.start();
   ClientMessage message3 = consumer.receive(1000);
   message3.acknowledge();
   ClientMessage message2 = consumer2.receive(1000);
   message2.acknowledge();
   Assert.assertEquals("m1", message3.getBodyBuffer().readString());
   Assert.assertEquals("m1", message2.getBodyBuffer().readString());
   long time = System.currentTimeMillis();
   // force redelivery
   consumer.close();
   consumer2.close();
   // this will make it redelivery-delay
   session.rollback();
   consumer = session.createConsumer(atestq);
   consumer2 = session.createConsumer(atestq2);
   message3 = consumer.receive(5250);
   message2 = consumer2.receive(1000);
   time += 5000;
   Assert.assertTrue(System.currentTimeMillis() >= time);
   Assert.assertEquals("m1", message3.getBodyBuffer().readString());
   Assert.assertEquals("m1", message2.getBodyBuffer().readString());
   message2.acknowledge();
   message3.acknowledge();

   // Make sure no more messages
   consumer.close();
   consumer2.close();
   consumer = session.createConsumer(atestq);
   Assert.assertNull(consumer.receiveImmediate());

   session.close();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:51,代码来源:ScheduledMessageTest.java

示例6: testPagedMessageDeliveredMultipleConsumersAfterRecoverCorrectly

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Test
public void testPagedMessageDeliveredMultipleConsumersAfterRecoverCorrectly() throws Exception {

   AddressSettings qs = new AddressSettings().setRedeliveryDelay(5000L);
   server.getAddressSettingsRepository().addMatch(atestq.toString(), qs);
   // then we create a client as normal
   ClientSessionFactory sessionFactory = createSessionFactory(locator);
   ClientSession session = sessionFactory.createSession(false, true, false);
   session.createQueue(atestq, atestq, null, true);
   session.createQueue(atestq, atestq2, null, true);
   ClientProducer producer = session.createProducer(atestq);
   ClientMessage message = createDurableMessage(session, "m1");
   producer.send(message);

   producer.close();

   ClientConsumer consumer = session.createConsumer(atestq);
   ClientConsumer consumer2 = session.createConsumer(atestq2);

   session.start();
   ClientMessage message3 = consumer.receive(1000);
   Assert.assertNotNull(message3);
   message3.acknowledge();
   ClientMessage message2 = consumer2.receive(1000);
   Assert.assertNotNull(message2);
   message2.acknowledge();
   Assert.assertEquals("m1", message3.getBodyBuffer().readString());
   Assert.assertEquals("m1", message2.getBodyBuffer().readString());
   long time = System.currentTimeMillis();
   // force redelivery
   consumer.close();
   consumer2.close();
   session.rollback();
   producer.close();
   session.close();
   server.stop();
   server = null;
   server = createServer(true, configuration);
   server.start();
   sessionFactory = createSessionFactory(locator);
   session = sessionFactory.createSession(false, true, true);
   consumer = session.createConsumer(atestq);
   consumer2 = session.createConsumer(atestq2);
   session.start();
   message3 = consumer.receive(5250);
   Assert.assertNotNull(message3);
   message2 = consumer2.receive(1000);
   Assert.assertNotNull(message2);
   time += 5000;
   Assert.assertTrue(System.currentTimeMillis() >= time);
   Assert.assertEquals("m1", message3.getBodyBuffer().readString());
   Assert.assertEquals("m1", message2.getBodyBuffer().readString());
   message2.acknowledge();
   message3.acknowledge();

   // Make sure no more messages
   consumer.close();
   consumer2.close();
   consumer = session.createConsumer(atestq);
   Assert.assertNull(consumer.receiveImmediate());

   session.close();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:64,代码来源:ScheduledMessageTest.java

示例7: testReceiveWithRollbackMultipleConsumersDifferentQueues

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Test
public void testReceiveWithRollbackMultipleConsumersDifferentQueues() throws Exception {
   ActiveMQServer server = createServer(false);

   server.start();
   ServerLocator locator = createInVMNonHALocator();
   ClientSessionFactory cf = createSessionFactory(locator);
   ClientSession sendSession = cf.createSession(false, true, true);
   ClientSession session = cf.createSession(false, false, false);
   sendSession.createQueue(addressA, queueA, false);
   sendSession.createQueue(addressB, queueB, false);
   ClientProducer cp = sendSession.createProducer(addressA);
   ClientProducer cp2 = sendSession.createProducer(addressB);
   ClientConsumer cc = session.createConsumer(queueA);
   ClientConsumer cc2 = session.createConsumer(queueB);
   int numMessages = 100;
   for (int i = 0; i < numMessages; i++) {
      cp.send(sendSession.createMessage(false));
      cp2.send(sendSession.createMessage(false));
   }
   session.start();
   for (int i = 0; i < numMessages; i++) {
      ClientMessage cm = cc.receive(5000);
      Assert.assertNotNull(cm);
      cm.acknowledge();
      cm = cc2.receive(5000);
      Assert.assertNotNull(cm);
      cm.acknowledge();
   }
   Queue q = (Queue) server.getPostOffice().getBinding(queueA).getBindable();
   Queue q2 = (Queue) server.getPostOffice().getBinding(queueB).getBindable();
   Assert.assertEquals(numMessages, q.getDeliveringCount());
   cc.close();
   cc2.close();
   session.rollback();
   Assert.assertEquals(0, q2.getDeliveringCount());
   Assert.assertEquals(numMessages, getMessageCount(q));
   Assert.assertEquals(0, q2.getDeliveringCount());
   Assert.assertEquals(numMessages, getMessageCount(q));
   sendSession.close();
   session.close();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:43,代码来源:CommitRollbackTest.java

示例8: testSimpleHierarchyWithDLA

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Test
public void testSimpleHierarchyWithDLA() throws Exception {
   ActiveMQServer server = createServer(false);

   server.start();
   AddressSettings addressSettings = new AddressSettings().setDeadLetterAddress(dlaA).setMaxDeliveryAttempts(1);
   AddressSettings addressSettings2 = new AddressSettings().setDeadLetterAddress(dlaB).setMaxDeliveryAttempts(1);
   HierarchicalRepository<AddressSettings> repos = server.getAddressSettingsRepository();
   repos.addMatch(addressA.toString(), addressSettings);
   repos.addMatch(addressB.toString(), addressSettings2);
   ServerLocator locator = createInVMNonHALocator();
   ClientSessionFactory sf = createSessionFactory(locator);
   ClientSession session = sf.createSession(false, true, false);
   session.createQueue(addressA, queueA, false);
   session.createQueue(addressB, queueB, false);
   session.createQueue(dlaA, dlqA, false);
   session.createQueue(dlaB, dlqB, false);
   ClientSession sendSession = sf.createSession(false, true, true);
   ClientMessage cm = sendSession.createMessage(true);
   cm.getBodyBuffer().writeString("A");
   ClientMessage cm2 = sendSession.createMessage(true);
   cm2.getBodyBuffer().writeString("B");
   ClientProducer cp1 = sendSession.createProducer(addressA);
   ClientProducer cp2 = sendSession.createProducer(addressB);
   cp1.send(cm);
   cp2.send(cm2);

   ClientConsumer dlqARec = session.createConsumer(dlqA);
   ClientConsumer dlqBrec = session.createConsumer(dlqB);
   ClientConsumer cc1 = session.createConsumer(queueA);
   ClientConsumer cc2 = session.createConsumer(queueB);
   session.start();
   ClientMessage message = cc1.receive(5000);
   Assert.assertNotNull(message);
   message.acknowledge();
   message = cc2.receive(5000);
   Assert.assertNotNull(message);
   message.acknowledge();
   session.rollback();
   cc1.close();
   cc2.close();
   message = dlqARec.receive(5000);
   Assert.assertNotNull(message);
   Assert.assertEquals("A", message.getBodyBuffer().readString());
   message = dlqBrec.receive(5000);
   Assert.assertNotNull(message);
   Assert.assertEquals("B", message.getBodyBuffer().readString());
   sendSession.close();
   session.close();

}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:52,代码来源:AddressSettingsTest.java

示例9: test2LevelWordHierarchyWithDLA

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Test
public void test2LevelWordHierarchyWithDLA() throws Exception {
   ActiveMQServer server = createServer(false);
   server.start();
   AddressSettings addressSettings = new AddressSettings().setDeadLetterAddress(dlaA).setMaxDeliveryAttempts(1);
   AddressSettings addressSettings2 = new AddressSettings().setDeadLetterAddress(dlaB).setMaxDeliveryAttempts(1);
   HierarchicalRepository<AddressSettings> repos = server.getAddressSettingsRepository();
   repos.addMatch(addressA.toString(), addressSettings);
   repos.addMatch("*", addressSettings2);
   ServerLocator locator = createInVMNonHALocator();
   ClientSessionFactory sf = createSessionFactory(locator);
   ClientSession session = sf.createSession(false, true, false);
   session.createQueue(addressA, queueA, false);
   session.createQueue(addressB, queueB, false);
   session.createQueue(dlaA, dlqA, false);
   session.createQueue(dlaB, dlqB, false);
   ClientSession sendSession = sf.createSession(false, true, true);
   ClientMessage cm = sendSession.createMessage(true);
   cm.getBodyBuffer().writeString("A");
   ClientMessage cm2 = sendSession.createMessage(true);
   cm2.getBodyBuffer().writeString("B");
   ClientProducer cp1 = sendSession.createProducer(addressA);
   ClientProducer cp2 = sendSession.createProducer(addressB);
   cp1.send(cm);
   cp2.send(cm2);

   ClientConsumer dlqARec = session.createConsumer(dlqA);
   ClientConsumer dlqBrec = session.createConsumer(dlqB);
   ClientConsumer cc1 = session.createConsumer(queueA);
   ClientConsumer cc2 = session.createConsumer(queueB);
   session.start();
   ClientMessage message = cc1.receive(5000);
   Assert.assertNotNull(message);
   message.acknowledge();
   message = cc2.receive(5000);
   Assert.assertNotNull(message);
   message.acknowledge();
   session.rollback();
   cc1.close();
   cc2.close();
   message = dlqARec.receive(5000);
   Assert.assertNotNull(message);
   Assert.assertEquals("A", message.getBodyBuffer().readString());
   message = dlqBrec.receive(5000);
   Assert.assertNotNull(message);
   Assert.assertEquals("B", message.getBodyBuffer().readString());
   sendSession.close();
   session.close();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:50,代码来源:AddressSettingsTest.java

示例10: testOverrideHierarchyWithDLA

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Test
public void testOverrideHierarchyWithDLA() throws Exception {
   ActiveMQServer server = createServer(false);

   server.start();
   AddressSettings addressSettings = new AddressSettings().setMaxDeliveryAttempts(1);
   AddressSettings addressSettings2 = new AddressSettings().setMaxDeliveryAttempts(1);
   AddressSettings addressSettings3 = new AddressSettings().setDeadLetterAddress(dlaC).setMaxDeliveryAttempts(1);
   HierarchicalRepository<AddressSettings> repos = server.getAddressSettingsRepository();
   repos.addMatch(addressA2.toString(), addressSettings);
   repos.addMatch("add.*", addressSettings2);
   repos.addMatch("#", addressSettings3);
   ServerLocator locator = createInVMNonHALocator();
   ClientSessionFactory sf = createSessionFactory(locator);
   ClientSession session = sf.createSession(false, true, false);
   session.createQueue(addressA2, queueA, false);
   session.createQueue(addressB2, queueB, false);
   session.createQueue(addressC, queueC, false);
   session.createQueue(dlaA, dlqA, false);
   session.createQueue(dlaB, dlqB, false);
   session.createQueue(dlaC, dlqC, false);
   ClientSession sendSession = sf.createSession(false, true, true);
   ClientMessage cm = sendSession.createMessage(true);
   ClientMessage cm2 = sendSession.createMessage(true);
   ClientMessage cm3 = sendSession.createMessage(true);
   ClientProducer cp1 = sendSession.createProducer(addressA2);
   ClientProducer cp2 = sendSession.createProducer(addressB2);
   ClientProducer cp3 = sendSession.createProducer(addressC);
   cp1.send(cm);
   cp2.send(cm2);
   cp3.send(cm3);

   ClientConsumer dlqCrec = session.createConsumer(dlqC);
   ClientConsumer cc1 = session.createConsumer(queueA);
   ClientConsumer cc2 = session.createConsumer(queueB);
   ClientConsumer cc3 = session.createConsumer(queueC);
   session.start();
   ClientMessage message = cc1.receive(5000);
   Assert.assertNotNull(message);
   message.acknowledge();
   message = cc2.receive(5000);
   Assert.assertNotNull(message);
   message.acknowledge();
   message = cc3.receive(5000);
   Assert.assertNotNull(message);
   message.acknowledge();
   session.rollback();
   cc1.close();
   cc2.close();
   cc3.close();
   message = dlqCrec.receive(5000);
   Assert.assertNotNull(message);
   message = dlqCrec.receive(5000);
   Assert.assertNotNull(message);
   message = dlqCrec.receive(5000);
   Assert.assertNotNull(message);
   sendSession.close();
   session.close();

}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:61,代码来源:AddressSettingsTest.java

示例11: internalTestSendRollback

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
private void internalTestSendRollback(final boolean isXA, final boolean durable) throws Exception {
   ClientSession session = null;

   ActiveMQServer server = createServer(true, isNetty(), storeType);

   server.start();

   ClientSessionFactory sf = addSessionFactory(createSessionFactory(locator));

   session = sf.createSession(isXA, false, false);

   session.createQueue(ADDRESS, ADDRESS, true);

   Xid xid = null;

   if (isXA) {
      xid = RandomUtil.randomXid();
      session.start(xid, XAResource.TMNOFLAGS);
   }

   ClientProducer producer = session.createProducer(ADDRESS);

   Message clientFile = createLargeClientMessageStreaming(session, 50000, durable);

   for (int i = 0; i < 1; i++) {
      producer.send(clientFile);
   }

   if (isXA) {
      session.end(xid, XAResource.TMSUCCESS);
      session.prepare(xid);
      session.close();
      server.stop();
      server.start();
      sf = createSessionFactory(locator);
      session = sf.createSession(isXA, false, false);

      session.rollback(xid);
   } else {
      session.rollback();
   }

   session.close();

   validateNoFilesOnLargeDir();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:47,代码来源:LargeMessageTest.java

示例12: testHangOnDelivery

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Test
public void testHangOnDelivery() throws Exception {
   queue = server.createQueue(QUEUE, RoutingType.ANYCAST, QUEUE, null, true, false);
   try {

      ClientSessionFactory factory = locator.createSessionFactory();
      ClientSession sessionProducer = factory.createSession(false, false, false);

      ServerLocator consumerLocator = createInVMNonHALocator();
      ClientSessionFactory factoryConsumer = consumerLocator.createSessionFactory();
      ClientSession sessionConsumer = factoryConsumer.createSession();

      ClientProducer producer = sessionProducer.createProducer(QUEUE);

      ClientConsumer consumer = sessionConsumer.createConsumer(QUEUE);

      producer.send(sessionProducer.createMessage(true));

      blockConsumers();

      sessionProducer.commit();

      sessionConsumer.start();

      awaitBlocking();

      // this shouldn't lock
      producer.send(sessionProducer.createMessage(true));
      sessionProducer.commit();

      // These three operations should finish without the test hanging
      queue.getMessagesAdded();
      queue.getMessageCount();

      releaseConsumers();

      // a rollback to make sure everything will be reset on the deliveries
      // and that both consumers will receive each a message
      // this is to guarantee the server will have both consumers regsitered
      sessionConsumer.rollback();

      // a flush to guarantee any pending task is finished on flushing out delivery and pending msgs
      queue.flushExecutor();
      Wait.waitFor(() -> getMessageCount(queue) == 2);
      Wait.assertEquals(2, queue::getMessageCount);
      Wait.assertEquals(2, queue::getMessagesAdded);

      ClientMessage msg = consumer.receive(5000);
      Assert.assertNotNull(msg);
      msg.acknowledge();

      msg = consumer.receive(5000);
      Assert.assertNotNull(msg);
      msg.acknowledge();

      sessionProducer.commit();
      sessionConsumer.commit();

      sessionProducer.close();
      sessionConsumer.close();
   } finally {
      releaseConsumers();
   }
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:65,代码来源:HangConsumerTest.java

示例13: testDedeliveryMessageOnPersistent

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
protected void testDedeliveryMessageOnPersistent(final boolean strictUpdate) throws Exception {
   setUp(strictUpdate);
   ClientSession session = factory.createSession(false, false, false);

   RedeliveryConsumerTest.log.info("created");

   ClientProducer prod = session.createProducer(ADDRESS);
   prod.send(createTextMessage(session, "Hello"));
   session.commit();
   session.close();

   session = factory.createSession(false, false, false);
   session.start();
   ClientConsumer consumer = session.createConsumer(ADDRESS);

   ClientMessage msg = consumer.receive(1000);
   Assert.assertEquals(1, msg.getDeliveryCount());
   session.stop();

   // if strictUpdate == true, this will simulate a crash, where the server is stopped without closing/rolling back
   // the session, but the delivery count still persisted, so the final delivery count is 2 too.
   if (!strictUpdate) {
      // If non Strict, at least rollback/cancel should still update the delivery-counts
      session.rollback(true);

      session.close();
   }

   server.stop();

   // once the server is stopped, we close the session
   // to clean up its client resources
   session.close();

   server.start();

   factory = createSessionFactory(locator);

   session = factory.createSession(false, true, false);
   session.start();
   consumer = session.createConsumer(ADDRESS);
   msg = consumer.receive(1000);
   Assert.assertNotNull(msg);
   Assert.assertEquals(strictUpdate ? 2 : 2, msg.getDeliveryCount());
   session.close();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:47,代码来源:RedeliveryConsumerTest.java

示例14: testTransactedDuplicateDetection2

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Test
public void testTransactedDuplicateDetection2() throws Exception {
   ClientSession session = sf.createSession(false, false, false);

   session.start();

   final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue");

   session.createQueue(queueName, queueName, null, false);

   ClientProducer producer = session.createProducer(queueName);

   ClientConsumer consumer = session.createConsumer(queueName);

   ClientMessage message = createMessage(session, 0);
   SimpleString dupID = new SimpleString("abcdefg");
   message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID.getData());
   producer.send(message);

   session.rollback();

   // Should be able to resend it and not get rejected since transaction didn't commit

   message = createMessage(session, 1);
   message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID.getData());
   producer.send(message);

   session.commit();

   message = consumer.receive(250);
   Assert.assertEquals(1, message.getObjectProperty(propKey));

   message = consumer.receiveImmediate();
   Assert.assertNull(message);
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:36,代码来源:DuplicateDetectionTest.java

示例15: testEntireTransactionRejected

import org.apache.activemq.artemis.api.core.client.ClientSession; //导入方法依赖的package包/类
@Test
public void testEntireTransactionRejected() throws Exception {
   ClientSession session = sf.createSession(false, false, false);

   session.start();

   final SimpleString queueName = new SimpleString("DuplicateDetectionTestQueue");

   final SimpleString queue2 = new SimpleString("queue2");

   session.createQueue(queueName, queueName, null, false);

   session.createQueue(queue2, queue2, null, false);

   ClientProducer producer = session.createProducer(queueName);

   ClientMessage message = createMessage(session, 0);
   SimpleString dupID = new SimpleString("abcdefg");
   message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID.getData());
   producer.send(message);

   ClientMessage message2 = createMessage(session, 0);
   ClientProducer producer2 = session.createProducer(queue2);
   producer2.send(message2);

   session.commit();

   session.close();

   session = sf.createSession(false, false, false);

   session.start();

   ClientConsumer consumer2 = session.createConsumer(queue2);

   producer = session.createProducer(queueName);

   message = createMessage(session, 1);
   message.putBytesProperty(Message.HDR_DUPLICATE_DETECTION_ID, dupID.getData());
   producer.send(message);

   message = createMessage(session, 2);
   producer.send(message);

   message = createMessage(session, 3);
   producer.send(message);

   message = createMessage(session, 4);
   producer.send(message);

   message = consumer2.receive(5000);
   assertNotNull(message);
   message.acknowledge();

   try {
      session.commit();
   } catch (ActiveMQDuplicateIdException die) {
      session.rollback();
   } catch (ActiveMQException e) {
      fail("Invalid Exception type:" + e.getType());
   }

   ClientConsumer consumer = session.createConsumer(queueName);

   message = consumer.receive(250);
   Assert.assertEquals(0, message.getObjectProperty(propKey));

   message = consumer.receiveImmediate();
   Assert.assertNull(message);

   message = consumer2.receive(5000);
   assertNotNull(message);

   message.acknowledge();

   session.commit();
}
 
开发者ID:apache,项目名称:activemq-artemis,代码行数:78,代码来源:DuplicateDetectionTest.java


注:本文中的org.apache.activemq.artemis.api.core.client.ClientSession.rollback方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。