本文整理汇总了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()));
}
示例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();
}
示例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();
}
示例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();
}
示例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();
}
示例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();
}
示例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();
}
示例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();
}
示例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();
}
示例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();
}
示例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();
}
示例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();
}
}
示例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();
}
示例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);
}
示例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();
}