public JMSMessageListenerAdapter addQueueListener(String queueName, final GoMessageListener listener) { try { Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); MessageConsumer consumer = session.createConsumer(session.createQueue(queueName)); return JMSMessageListenerAdapter.startListening(consumer, listener, daemonThreadStatsCollector); } catch (Exception e) { throw bomb(e); } }
public MessageSender createSender(String topic) { try { Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); MessageProducer producer = session.createProducer(session.createTopic(topic)); producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT); return new ActiveMqMessageSender(session, producer); } catch (Exception e) { throw bomb(e); } }
@Test public void testAutoSend() throws Exception { connection.start(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Queue queue = session.createQueue(queueName); MessageConsumer consumer = session.createConsumer(queue); MessageProducer producer = session.createProducer(queue); for (int i = 0; i < 10; i++) { producer.send(session.createTextMessage("testXX" + i)); } connection.start(); for (int i = 0; i < 10; i++) { TextMessage txt = (TextMessage) consumer.receive(5000); Assert.assertEquals("testXX" + i, txt.getText()); } }
@Test public void testInvalidDestinationExceptionWhenNoQueueExistsOnCreateProducer() throws Exception { connection.start(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Queue queue = session.createQueue("foo"); try { session.createProducer(queue); fail("Should have thrown an exception creating a producer here"); } catch (JMSException expected) { } session.close(); }
@Test @Ignore("ignored for now") public void testKeepAlive() throws Exception { connection.start(); Thread.sleep(30000); connection.createSession(false, 1); }
@Test public void testXASameConsumerRollback() throws Exception { Queue queue; try (Session session = connection.createSession(false, Session.CLIENT_ACKNOWLEDGE)) { queue = session.createQueue(queueName); System.out.println("Queue:" + queue); MessageProducer producer = session.createProducer(queue); for (int i = 0; i < 10; i++) { TextMessage msg = session.createTextMessage("test" + i); msg.setStringProperty("myobj", "test" + i); producer.send(msg); xaconnection.start(); for (int i = 0; i < 5; i++) { TextMessage message = (TextMessage) consumer.receive(5000); Assert.assertNotNull(message); Assert.assertEquals("test" + i, message.getText()); TextMessage message = (TextMessage) consumer.receive(5000); Assert.assertNotNull(message); Assert.assertEquals("test" + i, message.getText());
private void sendCompressedTextMessageUsingOpenWire() throws Exception { Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); ActiveMQDestination destination = createDestination(session, ActiveMQDestination.QUEUE_TYPE); final ActiveMQMessageProducer producer = (ActiveMQMessageProducer) session.createProducer(destination); TextMessage textMessage = session.createTextMessage(TEXT); producer.send(textMessage); }
@Override @Before public void setUp() throws Exception { super.setUp(); if (durable) { connection.setClientID(getClass().getName()); } System.out.println("Created connection: " + connection); session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); System.out.println("Created session: " + session); if (topic) { consumerDestination = this.createDestination(session, ActiveMQDestination.TOPIC_TYPE); producerDestination = this.createDestination(session, ActiveMQDestination.TOPIC_TYPE); } else { consumerDestination = this.createDestination(session, ActiveMQDestination.QUEUE_TYPE); producerDestination = this.createDestination(session, ActiveMQDestination.QUEUE_TYPE); } System.out.println("Created consumer destination: " + consumerDestination + " of type: " + consumerDestination.getClass()); System.out.println("Created producer destination: " + producerDestination + " of type: " + producerDestination.getClass()); producer = session.createProducer(producerDestination); producer.setDeliveryMode(deliveryMode); System.out.println("Created producer: " + producer + " delivery mode = " + (deliveryMode == DeliveryMode.PERSISTENT ? "PERSISTENT" : "NON_PERSISTENT")); connection.start(); }
public void testMessageListenerWithConsumer() throws Exception { final AtomicInteger counter = new AtomicInteger(0); final CountDownLatch done = new CountDownLatch(1); // Receive a message with the JMS API connection.start(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); ActiveMQDestination destination = createDestination(session, destinationType); MessageConsumer consumer = session.createConsumer(destination); consumer.setMessageListener(new MessageListener() { @Override public void onMessage(Message m) { counter.incrementAndGet(); if (counter.get() == 4) { done.countDown(); } } }); // Send the messages sendMessages(session, destination, 4); assertTrue(done.await(1000, TimeUnit.MILLISECONDS)); Thread.sleep(200); // Make sure only 4 messages were delivered. assertEquals(4, counter.get()); }
@Test public void testAckedMessageAreConsumed() throws Exception { connection.start(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Queue queue = session.createQueue(queueName); MessageProducer producer = session.createProducer(queue); producer.send(session.createTextMessage("Hello")); // Consume the message... MessageConsumer consumer = session.createConsumer(queue); consumer.setMessageListener(this); latch.await(10, TimeUnit.SECONDS); session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); // Attempt to Consume the message...check if message was acknowledge consumer = session.createConsumer(queue); Message msg = consumer.receive(1000); assertNull(msg); session.close(); }
@Test public void testQueueBrowser() throws Exception { // Send a message to the broker. connection.start(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); ActiveMQDestination destination = createDestination(session, destinationType); MessageProducer producer = session.createProducer(destination); producer.setDeliveryMode(this.deliveryMode); sendMessages(session, producer, 5); producer.close(); QueueBrowser browser = session.createBrowser((Queue) destination); Enumeration<?> enumeration = browser.getEnumeration(); for (int i = 0; i < 5; i++) { Thread.sleep(100); assertTrue(enumeration.hasMoreElements()); Message m = (Message) enumeration.nextElement(); assertNotNull(m); assertEquals("" + i, ((TextMessage) m).getText()); } assertFalse(enumeration.hasMoreElements()); }
private void sendObjectMessageUsingOpenWire(SimpleSerializable obj) throws Exception { Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); ActiveMQDestination destination = createDestination(session, ActiveMQDestination.QUEUE_TYPE); System.out.println("destination: " + destination); final ActiveMQMessageProducer producer = (ActiveMQMessageProducer) session.createProducer(destination); ObjectMessage objectMessage = session.createObjectMessage(obj); producer.send(objectMessage); }
private void sendTextMessageUsingOpenWire(String text) throws Exception { Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); ActiveMQDestination destination = createDestination(session, ActiveMQDestination.QUEUE_TYPE); final ActiveMQMessageProducer producer = (ActiveMQMessageProducer) session.createProducer(destination); TextMessage textMessage = session.createTextMessage(text); producer.send(textMessage); }
public JMSMessageListenerAdapter addListener(String topic, final GoMessageListener listener) { try { Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); MessageConsumer consumer = session.createConsumer(session.createTopic(topic)); return JMSMessageListenerAdapter.startListening(consumer, listener, daemonThreadStatsCollector); } catch (Exception e) { throw bomb(e); } }
@Test(timeout = 10000) public void testAutoCreatedQueue() throws JMSException { connection.start(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Queue queue = session.createQueue("autoCreated"); // Reset the session. session.close(); session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); session.createConsumer(queue); session.close(); connection.close(); //Happens more than once because of advisories verifier.validatePluginMethodsAtLeast(2, BEFORE_ADD_ADDRESS, AFTER_ADD_ADDRESS, BEFORE_REMOVE_ADDRESS, AFTER_REMOVE_ADDRESS); }
private void sendCompressedBytesMessageUsingOpenWire() throws Exception { Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); ActiveMQDestination destination = createDestination(session, ActiveMQDestination.QUEUE_TYPE); final ActiveMQMessageProducer producer = (ActiveMQMessageProducer) session.createProducer(destination); BytesMessage bytesMessage = session.createBytesMessage(); bytesMessage.writeBytes(TEXT.getBytes()); producer.send(bytesMessage); }
private void sendMultipleTextMessagesUsingOpenWire(String text, int num) throws Exception { Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); ActiveMQDestination destination = createDestination(session, ActiveMQDestination.QUEUE_TYPE); final ActiveMQMessageProducer producer = (ActiveMQMessageProducer) session.createProducer(destination); for (int i = 0; i < num; i++) { TextMessage textMessage = session.createTextMessage(text + i); producer.send(textMessage); } }
/** * Tests if acknowledged messages are being consumed. * * @throws javax.jms.JMSException */ @Test public void testAckedMessageAreConsumed() throws JMSException { connection.start(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); Queue queue = session.createQueue(queueName); MessageProducer producer = session.createProducer(queue); producer.send(session.createTextMessage("Hello")); // Consume the message... MessageConsumer consumer = session.createConsumer(queue); Message msg = consumer.receive(1000); assertNotNull(msg); // Reset the session. session.close(); session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); // Attempt to Consume the message... consumer = session.createConsumer(queue); msg = consumer.receive(1000); assertNull(msg); session.close(); }
private void sendCompressedObjectMessageUsingOpenWire() throws Exception { Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); ActiveMQDestination destination = createDestination(session, ActiveMQDestination.QUEUE_TYPE); final ActiveMQMessageProducer producer = (ActiveMQMessageProducer) session.createProducer(destination); ObjectMessage objectMessage = session.createObjectMessage(); objectMessage.setObject(TEXT); producer.send(objectMessage); }
@Override public void run() { Session session = null; try { session = flowControlConnection.createSession(false, Session.AUTO_ACKNOWLEDGE); MessageProducer producer = session.createProducer(queue); producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT); while (keepGoing.get()) { done.set(false); producer.send(session.createTextMessage("Hello World")); } } catch (JMSException e) { } finally { safeClose(session); } } };