consumer = session.createDurableSubscriber((Topic) destination, getName()); } else { consumer = session.createConsumer(destination); Message msg = consumer.receive(receiveTimeOut); if (msg != null) { LOG.info(threadName + " Received " + (msg instanceof TextMessage ? ((TextMessage) msg).getText() : msg.getJMSMessageID())); if (bytesAsText && (msg instanceof BytesMessage)) { long length = ((BytesMessage) msg).getBodyLength();
public void testCloseConsumer() throws Exception { Destination dest = session.createQueue(getSubject() + "?consumer.prefetchSize=0"); producer = session.createProducer(dest); beginTx(); producer.send(session.createTextMessage("message 1")); producer.send(session.createTextMessage("message 2")); commitTx(); beginTx(); consumer = session.createConsumer(dest); Message message1 = consumer.receive(1000); String text1 = ((TextMessage)message1).getText(); assertNotNull(message1); assertEquals("message 1", text1); consumer.close(); consumer = session.createConsumer(dest); Message message2 = consumer.receive(1000); String text2 = ((TextMessage)message2).getText(); assertNotNull(message2); assertEquals("message 2", text2); commitTx(); }
TextMessage[] outbound = new TextMessage[] {session.createTextMessage("First Message"), session.createTextMessage("Second Message")}; producer.send(outbound[0]); producer.send(outbound[1]); commitTx(); LOG.info("Sent 0: " + outbound[0]); TextMessage message = (TextMessage)consumer.receive(1000); assertEquals(outbound[0].getText(), message.getText()); message = (TextMessage)consumer.receive(1000); assertEquals(outbound[1].getText(), message.getText()); commitTx();
given(this.session.createConsumer(this.queue, messageSelector ? selectorString : null)).willReturn(messageConsumer); given(textMessage.getText()).willReturn("Hello World!"); given(messageConsumer.receive()).willReturn(textMessage); given(messageConsumer.receive(timeout)).willReturn(textMessage);
final ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(url); final javax.jms.Connection connection = connectionFactory.createConnection(); connection.setClientID("12345"); connection.start(); final Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); final Topic temporaryTopic = session.createTemporaryTopic(); final MessageConsumer consumer1 = session.createConsumer(temporaryTopic); final MessageProducer producer = session.createProducer(temporaryTopic); producer.send(session.createTextMessage("Testmessage")); final TextMessage message = (TextMessage)consumer1.receiveNoWait(); Assert.assertNotNull(message); Assert.assertEquals("testing", message.getText());
@Test public void testSendMessageWithReceipt() throws Exception { MessageConsumer consumer = session.createConsumer(queue); conn.connect(defUser, defPass); send(conn, getQueuePrefix() + getQueueName(), null, "Hello World", true); TextMessage message = (TextMessage) consumer.receive(1000); Assert.assertNotNull(message); Assert.assertEquals("Hello World", message.getText()); // Make sure that the timestamp is valid - should // be very close to the current time. long tnow = System.currentTimeMillis(); long tmsg = message.getJMSTimestamp(); Assert.assertTrue(Math.abs(tnow - tmsg) < 1000); }
/** * Sends a batch of messages and validates that the messages are received. * * @throws Exception */ public void testSendReceiveTransactedBatches() throws Exception { TextMessage message = session.createTextMessage("Batch Message"); for (int j = 0; j < batchCount; j++) { LOG.info("Producing bacth " + j + " of " + batchSize + " messages"); beginTx(); for (int i = 0; i < batchSize; i++) { producer.send(message); } messageSent(); commitTx(); LOG.info("Consuming bacth " + j + " of " + batchSize + " messages"); beginTx(); for (int i = 0; i < batchSize; i++) { message = (TextMessage)consumer.receive(1000 * 5); assertNotNull("Received only " + i + " messages in batch " + j, message); assertEquals("Batch Message", message.getText()); } commitTx(); } }
private static void receiveMessage() throws Exception { // 创建 ActiveMQ 链接,设置 Broker URL ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616"); // 创造 JMS 链接 Connection connection = connectionFactory.createConnection(); // 启动连接 connection.start(); // 创建会话 Session Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); // 创建消息目的 - Queue 名称为 "TEST" Destination destination = session.createQueue("TEST"); // 创建消息消费者 MessageConsumer messageConsumer = session.createConsumer(destination); // 获取消息 Message message = messageConsumer.receive(100); if (message instanceof TextMessage) { TextMessage textMessage = (TextMessage) message; System.out.println("消息消费内容:" + textMessage.getText()); } // 关闭消息消费者 messageConsumer.close(); // 关闭会话 session.close(); // 关闭连接 connection.stop(); connection.close(); }
/** * For reading a string message from a Topic or a Queue. * * @param consumer * @return the read string object * @throws JMSException */ public static String receiveTextMessage(MessageConsumer consumer) throws JMSException { TextMessage receivedMessage = (TextMessage) consumer.receive(); return receivedMessage.getText(); }
@Test public void testTopic2() throws Exception { Connection conn = createConnection(); Session s = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); MessageProducer p = s.createProducer(ActiveMQServerTestCase.topic1); MessageConsumer c = s.createConsumer(ActiveMQServerTestCase.topic1); conn.start(); p.send(s.createTextMessage("payload")); TextMessage m = (TextMessage) c.receive(); ProxyAssertSupport.assertEquals("payload", m.getText()); }
@Test public void testReceiveMessageWithConsumer() throws Exception { // 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); // Send the messages sendMessages(session, destination, 1); // Make sure only 1 message was delivered. Message m = consumer.receive(1000); assertNotNull(m); assertEquals("0", ((TextMessage) m).getText()); assertNull(consumer.receiveNoWait()); }
producer.send(session.createTextMessage("Test Message: " + i)); commitTx(); session.close(); TextMessage message = (TextMessage)consumer.receive(1000 * 5); assertNotNull("Received only " + i + " messages in batch ", message); assertEquals("Test Message: " + i, message.getText());
private static void receiveMessage() throws Exception { // 创建 ActiveMQ 链接,设置 Broker URL ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616"); // 创造 JMS 链接 Connection connection = connectionFactory.createConnection(); // 启动连接 connection.start(); // 创建会话 Session Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); // 创建消息目的 - Queue 名称为 "TEST" Destination destination = session.createQueue("TEST"); // 创建消息消费者 MessageConsumer messageConsumer = session.createConsumer(destination); // 获取消息 Message message = messageConsumer.receive(100); if (message instanceof TextMessage) { TextMessage textMessage = (TextMessage) message; System.out.println("消息消费内容:" + textMessage.getText()); } // 关闭消息消费者 messageConsumer.close(); // 关闭会话 session.close(); // 关闭连接 connection.stop(); connection.close(); }
@Test public void testCreateProducerOnNullQueue() throws Exception { Connection conn = getConnectionFactory().createConnection(); Session sess = conn.createSession(false, Session.AUTO_ACKNOWLEDGE); Message m = sess.createTextMessage("something"); MessageProducer p = sess.createProducer(null); p.send(queue1, m); MessageConsumer c = sess.createConsumer(queue1); conn.start(); // receiveNoWait is not guaranteed to return message immediately TextMessage rm = (TextMessage) c.receive(1000); ProxyAssertSupport.assertEquals("something", rm.getText()); conn.close(); }
@Test public void testSendMessageWithReceipt() throws Exception { MessageConsumer consumer = session.createConsumer(queue); conn.connect(defUser, defPass); send(conn, getQueuePrefix() + getQueueName(), null, "Hello World", true); TextMessage message = (TextMessage) consumer.receive(1000); Assert.assertNotNull(message); Assert.assertEquals("Hello World", message.getText()); // Make sure that the timestamp is valid - should // be very close to the current time. long tnow = System.currentTimeMillis(); long tmsg = message.getJMSTimestamp(); Assert.assertTrue(Math.abs(tnow - tmsg) < 1000); conn.disconnect(); }
Message[] outbound = new Message[] {session.createTextMessage("First Message"), session.createTextMessage("Second Message"), session.createTextMessage("Third Message")}; while (consumer.receive(1000) != null) { producer.send(outbound[0]); producer.send(outbound[1]); producer.send(outbound[2]); commitTx(); assertEquals(outbound[0], consumer.receive(1000)); consumer.close(); commitTx(); LOG.info("Got extra message: " + ((TextMessage)enumeration.nextElement()).getText()); tooMany = true; assertEquals(outbound[1], consumer.receive(1000)); assertEquals(outbound[2], consumer.receive(1000));
private static void receiveMessage() throws Exception { // 创建 ActiveMQ 链接,设置 Broker URL ConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616"); // 创造 JMS 链接 Connection connection = connectionFactory.createConnection(); // 启动连接 connection.start(); // 创建会话 Session Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); // 创建消息目的 - Queue 名称为 "TEST" Destination destination = session.createQueue("TEST"); // 创建消息消费者 MessageConsumer messageConsumer = session.createConsumer(destination); // 获取消息 Message message = messageConsumer.receive(100); if (message instanceof TextMessage) { TextMessage textMessage = (TextMessage) message; System.out.println("消息消费内容:" + textMessage.getText()); } // 关闭消息消费者 messageConsumer.close(); // 关闭会话 session.close(); // 关闭连接 connection.stop(); connection.close(); }