@Test public void testSendRollbackQueue() throws Exception { Connection conn = null; try { conn = createConnection(); Session producerSess = conn.createSession(true, Session.AUTO_ACKNOWLEDGE); MessageProducer producer = producerSess.createProducer(queue1); Session consumerSess = conn.createSession(false, Session.CLIENT_ACKNOWLEDGE); MessageConsumer consumer = consumerSess.createConsumer(queue1); conn.start(); final int NUM_MESSAGES = 10; // Send some messages for (int i = 0; i < NUM_MESSAGES; i++) { Message m = producerSess.createMessage(); producer.send(m); } producerSess.rollback(); Message m = consumer.receive(500); ProxyAssertSupport.assertNull(m); } finally { if (conn != null) { conn.close(); } } }
/** * Send some messages in transacted session. Don't commit. Verify message are not received by * consumer. */ @Test public void testSendNoCommitTopic() throws Exception { Connection conn = null; try { conn = createConnection(); Session producerSess = conn.createSession(true, Session.SESSION_TRANSACTED); MessageProducer producer = producerSess.createProducer(HornetQServerTestCase.topic1); Session consumerSess = conn.createSession(false, Session.CLIENT_ACKNOWLEDGE); MessageConsumer consumer = consumerSess.createConsumer(HornetQServerTestCase.topic1); conn.start(); final int NUM_MESSAGES = 10; // Send some messages for (int i = 0; i < NUM_MESSAGES; i++) { Message m = producerSess.createMessage(); producer.send(m); } Message m = consumer.receive(500); ProxyAssertSupport.assertNull(m); } finally { if (conn != null) { conn.close(); } } }
/** * Send some messages. Receive them in a transacted session. Commit the receiving session Close * the connection Create a new connection, session and consumer - verify messages are not * redelivered */ @Test public void testAckCommitQueue() throws Exception { Connection conn = null; try { conn = createConnection(); Session producerSess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); MessageProducer producer = producerSess.createProducer(queue1); Session consumerSess = conn.createSession(true, Session.SESSION_TRANSACTED); MessageConsumer consumer = consumerSess.createConsumer(queue1); conn.start(); final int NUM_MESSAGES = 10; // Send some messages for (int i = 0; i < NUM_MESSAGES; i++) { Message m = producerSess.createMessage(); producer.send(m); } int count = 0; while (true) { Message m = consumer.receive(500); if (m == null) { break; } count++; } ProxyAssertSupport.assertEquals(NUM_MESSAGES, count); consumerSess.commit(); conn.stop(); consumer.close(); conn.close(); conn = createConnection(); consumerSess = conn.createSession(true, Session.CLIENT_ACKNOWLEDGE); consumer = consumerSess.createConsumer(queue1); conn.start(); Message m = consumer.receive(500); ProxyAssertSupport.assertNull(m); } finally { if (conn != null) { conn.close(); } } }