org.apache.activemq.broker.jmx.QueueViewMBean Java Examples

The following examples show how to use org.apache.activemq.broker.jmx.QueueViewMBean. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: JmsQueueBrowserTest.java    From qpid-jms with Apache License 2.0 6 votes vote down vote up
@Test(timeout = 40000)
public void testBrowseAllInQueueTxSession() throws Exception {
    connection = createAmqpConnection();
    connection.start();

    Session session = connection.createSession(true, Session.SESSION_TRANSACTED);
    assertNotNull(session);
    Queue queue = session.createQueue(getDestinationName());
    sendToAmqQueue(5);

    QueueViewMBean proxy = getProxyToQueue(getDestinationName());
    assertEquals(5, proxy.getQueueSize());

    QueueBrowser browser = session.createBrowser(queue);
    assertNotNull(browser);
    Enumeration enumeration = browser.getEnumeration();
    int count = 0;
    while (enumeration.hasMoreElements()) {
        Message msg = (Message) enumeration.nextElement();
        assertNotNull(msg);
        LOG.debug("Recv: {}", msg);
        count++;
    }
    assertFalse(enumeration.hasMoreElements());
    assertEquals(5, count);
}
 
Example #2
Source File: JmsAutoAckTest.java    From qpid-jms with Apache License 2.0 6 votes vote down vote up
@Test(timeout = 60000)
public void testAckedMessageAreConsumed() throws Exception {
    connection = createAmqpConnection();
    connection.start();

    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    assertNotNull(session);
    Queue queue = session.createQueue(name.getMethodName());
    MessageConsumer consumer = session.createConsumer(queue);

    sendToAmqQueue(1);

    final QueueViewMBean proxy = getProxyToQueue(name.getMethodName());
    assertEquals(1, proxy.getQueueSize());

    assertNotNull("Failed to receive any message.", consumer.receive(3000));

    assertTrue("Queued message not consumed.", Wait.waitFor(new Wait.Condition() {

        @Override
        public boolean isSatisfied() throws Exception {
            return proxy.getQueueSize() == 0;
        }
    }));
}
 
Example #3
Source File: QueuePurgeTest.java    From activemq-artemis with Apache License 2.0 6 votes vote down vote up
public void testPurgeLargeQueueWithConsumer() throws Exception {
   applyBrokerSpoolingPolicy();
   createProducerAndSendMessages(NUM_TO_SEND);
   QueueViewMBean proxy = getProxyToQueueViewMBean();
   createConsumer();
   long start = System.currentTimeMillis();
   LOG.info("purging..");
   proxy.purge();
   LOG.info("purge done: " + (System.currentTimeMillis() - start) + "ms");
   assertEquals("Queue size is not zero, it's " + proxy.getQueueSize(), 0, proxy.getQueueSize());
   assertEquals("usage goes to duck", 0, proxy.getMemoryPercentUsage());
   Message msg;
   do {
      msg = consumer.receive(1000);
      if (msg != null) {
         msg.acknowledge();
      }
   } while (msg != null);
   assertEquals("Queue size not valid", 0, proxy.getQueueSize());
}
 
Example #4
Source File: JmsTransactedSessionTest.java    From qpid-jms with Apache License 2.0 6 votes vote down vote up
@Test(timeout=60000)
public void testCloseSessionRollsBack() throws Exception {
    connection = createAmqpConnection();
    connection.start();

    sendToAmqQueue(2);

    QueueViewMBean proxy = getProxyToQueue(name.getMethodName());
    assertEquals(2, proxy.getQueueSize());

    Session session = connection.createSession(true, Session.SESSION_TRANSACTED);
    Queue queue = session.createQueue(name.getMethodName());
    MessageConsumer consumer = session.createConsumer(queue);
    Message message = consumer.receive(5000);
    assertNotNull(message);
    message = consumer.receive(5000);
    assertNotNull(message);

    assertEquals(2, proxy.getQueueSize());
    session.close();
    assertEquals(2, proxy.getQueueSize());
}
 
Example #5
Source File: JmsTransactedProducerTest.java    From qpid-jms with Apache License 2.0 6 votes vote down vote up
@Test(timeout = 60000)
public void testTXProducerRollbacksNotQueued() throws Exception {
    final int MSG_COUNT = 10;
    connection = createAmqpConnection();
    connection.start();
    Session session = connection.createSession(true, Session.SESSION_TRANSACTED);
    Queue queue = session.createQueue(name.getMethodName());
    MessageProducer producer = session.createProducer(queue);

    for (int i = 0; i < MSG_COUNT; ++i) {
        producer.send(session.createTextMessage());
    }

    QueueViewMBean proxy = getProxyToQueue(name.getMethodName());
    session.rollback();
    assertEquals(0, proxy.getQueueSize());
}
 
Example #6
Source File: PurgeCommandTest.java    From activemq-artemis with Apache License 2.0 6 votes vote down vote up
/**
 * This test ensures that the queueViewMbean will work.
 *
 * @throws Exception
 */
public void testQueueViewMbean() throws Exception {

   try {
      addMessages();

      validateCounts(MESSAGE_COUNT, MESSAGE_COUNT, MESSAGE_COUNT * 2);

      List<String> tokens = Arrays.asList(new String[]{"*"});
      for (String token : tokens) {
         List<ObjectInstance> queueList = JmxMBeansUtil.queryMBeans(createJmxConnection(), "type=Broker,brokerName=localbroker,destinationType=Queue,destinationName=" + token);

         for (ObjectInstance queue : queueList) {
            ObjectName queueName = queue.getObjectName();
            QueueViewMBean proxy = MBeanServerInvocationHandler.newProxyInstance(createJmxConnection(), queueName, QueueViewMBean.class, true);
            int removed = proxy.removeMatchingMessages(MSG_SEL_WITH_PROPERTY);
            LOG.info("Removed: " + removed);
         }
      }

      validateCounts(0, MESSAGE_COUNT, MESSAGE_COUNT);

   } finally {
      purgeAllMessages();
   }
}
 
Example #7
Source File: JmsQueueBrowserTest.java    From qpid-jms with Apache License 2.0 6 votes vote down vote up
@Test(timeout = 40000)
public void testNoMessagesBrowserHasNoElements() throws Exception {
    connection = createAmqpConnection();
    connection.start();

    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    assertNotNull(session);
    Queue queue = session.createQueue(getDestinationName());
    session.createConsumer(queue).close();

    QueueBrowser browser = session.createBrowser(queue);
    assertNotNull(browser);

    QueueViewMBean proxy = getProxyToQueue(getDestinationName());
    assertEquals(0, proxy.getQueueSize());

    Enumeration enumeration = browser.getEnumeration();
    assertFalse(enumeration.hasMoreElements());
}
 
Example #8
Source File: JmsQueueSenderTest.java    From qpid-jms with Apache License 2.0 6 votes vote down vote up
@Test
public void testCreateQueueSender() throws Exception {
    JmsConnectionFactory factory = new JmsConnectionFactory(getBrokerAmqpConnectionURI());
    QueueConnection connection = factory.createQueueConnection();
    assertNotNull(connection);

    QueueSession session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
    assertNotNull(session);
    Queue queue = session.createQueue(name.getMethodName());
    QueueSender sender = session.createSender(queue);
    assertNotNull(sender);

    QueueViewMBean proxy = getProxyToQueue(name.getMethodName());
    assertEquals(0, proxy.getQueueSize());
    connection.close();
}
 
Example #9
Source File: BrokerNetworkWithStuckMessagesTest.java    From activemq-artemis with Apache License 2.0 6 votes vote down vote up
private Object[] browseQueueWithJmx(BrokerService broker) throws Exception {
   Hashtable<String, String> params = new Hashtable<>();
   params.put("brokerName", broker.getBrokerName());
   params.put("type", "Broker");
   params.put("destinationType", "Queue");
   params.put("destinationName", queueName);
   ObjectName queueObjectName = ObjectName.getInstance(amqDomain, params);

   ManagementContext mgmtCtx = broker.getManagementContext();
   QueueViewMBean queueView = (QueueViewMBean) mgmtCtx.newProxyInstance(queueObjectName, QueueViewMBean.class, true);

   Object[] messages = queueView.browse();

   LOG.info("+Browsed with JMX: " + messages.length);

   return messages;
}
 
Example #10
Source File: SecurityJMXTest.java    From activemq-artemis with Apache License 2.0 6 votes vote down vote up
public void testBrowseExpiredMessages() throws Exception {
   JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:1199/jmxrmi");
   JMXConnector connector = JMXConnectorFactory.connect(url, null);
   connector.connect();
   MBeanServerConnection connection = connector.getMBeanServerConnection();
   ObjectName name = new ObjectName("org.apache.activemq:type=Broker,brokerName=localhost," + "destinationType=Queue,destinationName=TEST.Q");
   QueueViewMBean queueMbean = MBeanServerInvocationHandler.newProxyInstance(connection, name, QueueViewMBean.class, true);
   HashMap<String, String> headers = new HashMap<>();
   headers.put("timeToLive", Long.toString(2000));
   headers.put("JMSDeliveryMode", Integer.toString(DeliveryMode.PERSISTENT));
   queueMbean.sendTextMessage(headers, "test", "system", "manager");
   // allow message to expire on the queue
   TimeUnit.SECONDS.sleep(4);

   Connection c = new ActiveMQConnectionFactory("vm://localhost").createConnection("system", "manager");
   c.start();

   // browser consumer will force expiration check on addConsumer
   QueueBrowser browser = c.createSession(false, Session.AUTO_ACKNOWLEDGE).createBrowser(new ActiveMQQueue("TEST.Q"));
   assertTrue("no message in the q", !browser.getEnumeration().hasMoreElements());

   // verify dlq got the message, no security exception as brokers context is now used
   browser = c.createSession(false, Session.AUTO_ACKNOWLEDGE).createBrowser(new ActiveMQQueue("ActiveMQ.DLQ"));
   assertTrue("one message in the dlq", browser.getEnumeration().hasMoreElements());
}
 
Example #11
Source File: JmsMessageConsumerTest.java    From qpid-jms with Apache License 2.0 6 votes vote down vote up
@Test(timeout = 60000)
public void testSyncConsumeFromQueue() throws Exception {
    connection = createAmqpConnection();
    connection.start();

    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    assertNotNull(session);
    Queue queue = session.createQueue(name.getMethodName());
    MessageConsumer consumer = session.createConsumer(queue);

    sendToAmqQueue(1);

    final QueueViewMBean proxy = getProxyToQueue(name.getMethodName());
    assertEquals(1, proxy.getQueueSize());

    assertNotNull("Failed to receive any message.", consumer.receive(3000));

    assertTrue("Queued message not consumed.", Wait.waitFor(new Wait.Condition() {

        @Override
        public boolean isSatisfied() throws Exception {
            return proxy.getQueueSize() == 0;
        }
    }));
}
 
Example #12
Source File: JmsProduceMessageTypesTest.java    From qpid-jms with Apache License 2.0 6 votes vote down vote up
@Test(timeout = 60000)
public void testSendJMSBytesMessage() throws Exception {
    connection = createAmqpConnection();
    connection.start();

    String payload = "TEST";

    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    assertNotNull(session);
    Queue queue = session.createQueue(name.getMethodName());
    MessageProducer producer = session.createProducer(queue);
    BytesMessage message = session.createBytesMessage();
    message.writeUTF(payload);
    producer.send(message);
    QueueViewMBean proxy = getProxyToQueue(name.getMethodName());
    assertEquals(1, proxy.getQueueSize());

    MessageConsumer consumer = session.createConsumer(queue);
    Message received = consumer.receive(5000);
    assertNotNull(received);
    assertTrue(received instanceof BytesMessage);
    BytesMessage bytes = (BytesMessage) received;
    assertEquals(payload, bytes.readUTF());
}
 
Example #13
Source File: JmsTransactedProducerTest.java    From qpid-jms with Apache License 2.0 6 votes vote down vote up
@Test(timeout = 60000)
public void testTXProducerReusesMessage() throws Exception {
    final int MSG_COUNT = 10;
    connection = createAmqpConnection();
    connection.start();
    Session session = connection.createSession(true, Session.SESSION_TRANSACTED);
    Session nonTxSession = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    Queue queue = session.createQueue(name.getMethodName());
    MessageConsumer consumer = nonTxSession.createConsumer(queue);
    MessageProducer producer = session.createProducer(queue);

    TextMessage message = session.createTextMessage();
    for (int i = 0; i < MSG_COUNT; ++i) {
        message.setText("Sequence: " + i);
        producer.send(message);
    }

    Message msg = consumer.receive(1000);
    assertNull(msg);

    QueueViewMBean proxy = getProxyToQueue(name.getMethodName());
    session.commit();
    assertEquals(MSG_COUNT, proxy.getQueueSize());
}
 
Example #14
Source File: JmsProduceMessageTypesTest.java    From qpid-jms with Apache License 2.0 6 votes vote down vote up
@Test(timeout = 60000)
public void testSendJMSMapMessage() throws Exception {
    connection = createAmqpConnection();
    connection.start();

    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    assertNotNull(session);
    Queue queue = session.createQueue(name.getMethodName());
    MessageProducer producer = session.createProducer(queue);
    MapMessage message = session.createMapMessage();
    message.setBoolean("Boolean", false);
    message.setString("STRING", "TEST");
    producer.send(message);
    QueueViewMBean proxy = getProxyToQueue(name.getMethodName());
    assertEquals(1, proxy.getQueueSize());

    MessageConsumer consumer = session.createConsumer(queue);
    Message received = consumer.receive(5000);
    assertNotNull(received);
    assertTrue(received instanceof MapMessage);
    MapMessage map = (MapMessage) received;
    assertEquals("TEST", map.getString("STRING"));
    assertEquals(false, map.getBooleanProperty("Boolean"));
}
 
Example #15
Source File: JmsProduceMessageTypesTest.java    From qpid-jms with Apache License 2.0 6 votes vote down vote up
@Test(timeout = 60000)
public void testSendJMSStreamMessage() throws Exception {
    connection = createAmqpConnection();
    connection.start();

    String payload = "TEST";

    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    assertNotNull(session);
    Queue queue = session.createQueue(name.getMethodName());
    MessageProducer producer = session.createProducer(queue);
    StreamMessage message = session.createStreamMessage();
    message.writeString(payload);
    producer.send(message);
    QueueViewMBean proxy = getProxyToQueue(name.getMethodName());
    assertEquals(1, proxy.getQueueSize());

    MessageConsumer consumer = session.createConsumer(queue);
    Message received = consumer.receive(5000);
    assertNotNull(received);
    assertTrue(received instanceof StreamMessage);
    StreamMessage stream = (StreamMessage) received;
    assertEquals(payload, stream.readString());
}
 
Example #16
Source File: ConsumeFromAMQPTest.java    From qpid-jms with Apache License 2.0 6 votes vote down vote up
@Test
public void oneConsumedForProfile() throws Exception {
    connection = createAmqpConnection();
    connection.start();

    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    Queue queue = session.createQueue(getDestinationName());
    MessageProducer producer = session.createProducer(queue);
    producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);

    TextMessage message = session.createTextMessage();
    message.setText("hello");
    producer.send(message);
    producer.close();

    QueueViewMBean queueView = getProxyToQueue(getDestinationName());
    assertEquals("Queue should have a message", 1, queueView.getQueueSize());

    MessageConsumer consumer = session.createConsumer(queue);
    Message received = consumer.receive(7000);
    assertNotNull(received);
    consumer.close();

    assertEquals("Queue should have ano messages", 0, queueView.getQueueSize());
}
 
Example #17
Source File: JmsProduceMessageTypesTest.java    From qpid-jms with Apache License 2.0 6 votes vote down vote up
@Test(timeout = 60000)
public void testSendJMSTextMessage() throws Exception {
    connection = createAmqpConnection();
    connection.start();

    String payload = "TEST";

    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    assertNotNull(session);
    Queue queue = session.createQueue(name.getMethodName());
    MessageProducer producer = session.createProducer(queue);
    TextMessage message = session.createTextMessage("TEST");
    producer.send(message);
    QueueViewMBean proxy = getProxyToQueue(name.getMethodName());
    assertEquals(1, proxy.getQueueSize());

    MessageConsumer consumer = session.createConsumer(queue);
    Message received = consumer.receive(5000);
    assertNotNull(received);
    assertTrue(received instanceof TextMessage);
    TextMessage text = (TextMessage) received;
    assertEquals(payload, text.getText());
}
 
Example #18
Source File: JmsMessageProducerTest.java    From qpid-jms with Apache License 2.0 6 votes vote down vote up
@Test(timeout = 20000)
public void testProducerWithNoTTLSendsMessagesWithoutTTL() throws Exception {
    connection = createAmqpConnection();
    assertNotNull(connection);
    connection.start();

    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    assertNotNull(session);
    Queue queue = session.createQueue(name.getMethodName());
    MessageProducer producer = session.createProducer(queue);

    QueueViewMBean proxy = getProxyToQueue(name.getMethodName());
    assertEquals(0, proxy.getQueueSize());

    Message message = session.createMessage();
    producer.send(message);

    assertEquals(1, proxy.getQueueSize());

    MessageConsumer consumer = session.createConsumer(queue);
    message = consumer.receive(5000);
    assertNotNull(message);
    assertEquals(0, message.getJMSExpiration());
}
 
Example #19
Source File: TransactedProducerSendRateTest.java    From qpid-jms with Apache License 2.0 6 votes vote down vote up
@Test
public void testSendNonPersistentQueueMessagesAMQP() throws Exception {
    connection = createAmqpConnection();
    Session session = connection.createSession(true, Session.SESSION_TRANSACTED);
    Destination destination = session.createQueue(getDestinationName());
    MessageProducer producer = session.createProducer(destination);
    QueueViewMBean queueView = getProxyToQueue(getDestinationName());

    // Warm
    produceMessages(session, producer);

    long totalCycleTime = 0;
    for (int i = 0; i < ITERATIONS; i++) {
        totalCycleTime += produceMessages(session, producer);
        queueView.purge();
    }

    long smoothedTime = totalCycleTime / ITERATIONS;

    LOG.info("Total time for QPid client = {}", TimeUnit.NANOSECONDS.toMillis(smoothedTime));
}
 
Example #20
Source File: ProduceToAMQPTest.java    From qpid-jms with Apache License 2.0 5 votes vote down vote up
@Test
public void testProduceRateToQueue() throws Exception {

    connection = createAmqpConnection();
    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    Queue queue = session.createQueue(getDestinationName());

    // Warm Up the broker.
    produceMessages(queue, MSG_COUNT);

    QueueViewMBean queueView = getProxyToQueue(getDestinationName());
    queueView.purge();

    List<Long> sendTimes = new ArrayList<Long>();
    long cumulative = 0;

    for (int i = 0; i < NUM_RUNS; ++i) {
        long result = produceMessages(queue, MSG_COUNT);
        sendTimes.add(result);
        cumulative += result;
        LOG.info("Time to send {} queue messages: {} ms", MSG_COUNT, result);
        queueView.purge();
    }

    long smoothed = cumulative / NUM_RUNS;
    LOG.info("Smoothed send time for {} messages: {}", MSG_COUNT, smoothed);
    TimeUnit.SECONDS.sleep(1);
}
 
Example #21
Source File: QpidJmsTestSupport.java    From qpid-jms with Apache License 2.0 5 votes vote down vote up
protected QueueViewMBean getProxyToQueue(BrokerService broker, String name) throws MalformedObjectNameException, JMSException {
    ObjectName queueViewMBeanName = new ObjectName(
        broker.getBrokerObjectName() + ",destinationType=Queue,destinationName=" + name);
    QueueViewMBean proxy = (QueueViewMBean) brokerService.getManagementContext()
            .newProxyInstance(queueViewMBeanName, QueueViewMBean.class, true);
    return proxy;
}
 
Example #22
Source File: JmsZeroPrefetchTest.java    From qpid-jms with Apache License 2.0 5 votes vote down vote up
@Test(timeout = 60000)
public void testBlockingReceivesUnBlocksOnMessageSend() throws Exception {
    connection = createAmqpConnection();
    connection.start();

    final Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    Queue queue = session.createQueue(getDestinationName());

    final MessageProducer producer = session.createProducer(queue);

    Thread producerThread = new Thread(new Runnable() {

        @Override
        public void run() {
            try {
                Thread.sleep(1500);
                producer.send(session.createTextMessage("Hello World! 1"));
            } catch (Exception e) {
            }
        }
    });
    producerThread.start();

    MessageConsumer consumer = session.createConsumer(queue);
    Message answer = consumer.receive();
    assertNotNull("Should have received a message!", answer);

    final QueueViewMBean queueView = getProxyToQueue(getDestinationName());

    // Assert that we only pulled one message and that we didn't cause
    // the other message to be dispatched.
    assertTrue(Wait.waitFor(new Wait.Condition() {

        @Override
        public boolean isSatisfied() throws Exception {
            return queueView.getQueueSize() == 0;
        }
    }));
}
 
Example #23
Source File: QpidJmsTestSupport.java    From qpid-jms with Apache License 2.0 5 votes vote down vote up
protected QueueViewMBean getProxyToTemporaryQueue(BrokerService broker, String name) throws MalformedObjectNameException, JMSException {
    name = JMXSupport.encodeObjectNamePart(name);
    ObjectName queueViewMBeanName = new ObjectName(
        broker.getBrokerObjectName() + ",destinationType=TempQueue,destinationName=" + name);
    QueueViewMBean proxy = (QueueViewMBean) brokerService.getManagementContext()
            .newProxyInstance(queueViewMBeanName, QueueViewMBean.class, true);
    return proxy;
}
 
Example #24
Source File: ConsumeFromAMQPTest.java    From qpid-jms with Apache License 2.0 5 votes vote down vote up
@Test
public void testConsumeRateFromQueue() throws Exception {
    connection = createAmqpConnection();
    connection.start();

    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    Queue queue = session.createQueue(getDestinationName());

    // Warm Up the broker.
    produceMessages(queue, MSG_COUNT);
    consumerMessages(queue, MSG_COUNT);
    QueueViewMBean queueView = getProxyToQueue(getDestinationName());
    queueView.purge();

    List<Long> sendTimes = new ArrayList<Long>();
    long cumulative = 0;

    for (int i = 0; i < NUM_RUNS; ++i) {
        produceMessages(queue, MSG_COUNT);
        long result = consumerMessages(queue, MSG_COUNT);
        sendTimes.add(result);
        cumulative += result;
        LOG.info("Time to send {} topic messages: {} ms", MSG_COUNT, result);
        queueView.purge();
    }

    long smoothed = cumulative / NUM_RUNS;
    LOG.info("Smoothed send time for {} messages: {}", MSG_COUNT, smoothed);
}
 
Example #25
Source File: JmsTransactedConsumerTest.java    From qpid-jms with Apache License 2.0 5 votes vote down vote up
@Test(timeout = 60000)
public void testReceiveTwoThenCloseSessionToRollback() throws Exception {
    connection = createAmqpConnection();
    connection.start();

    sendToAmqQueue(2);

    QueueViewMBean proxy = getProxyToQueue(name.getMethodName());
    assertEquals(2, proxy.getQueueSize());

    Session session = connection.createSession(true, Session.SESSION_TRANSACTED);
    Queue queue = session.createQueue(name.getMethodName());
    MessageConsumer consumer = session.createConsumer(queue);

    Message message = consumer.receive(3000);
    assertNotNull(message);
    message = consumer.receive(3000);
    assertNotNull(message);
    session.rollback();

    assertEquals(2, proxy.getQueueSize());

    // Consume again.. the prev message should get redelivered.
    message = consumer.receive(5000);
    assertNotNull("Should have re-received the message again!", message);
    message = consumer.receive(5000);
    assertNotNull("Should have re-received the message again!", message);

    session.close();

    assertEquals(2, proxy.getQueueSize());
}
 
Example #26
Source File: JmsMessageConsumerTest.java    From qpid-jms with Apache License 2.0 5 votes vote down vote up
@Test(timeout=45000)
public void testSelectorsWithJMSType() throws Exception {
    connection = createAmqpConnection();
    connection.start();
    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    Queue queue = session.createQueue(name.getMethodName());
    MessageProducer producer = session.createProducer(queue);

    TextMessage message = session.createTextMessage();
    message.setText("text");
    producer.send(message, DeliveryMode.NON_PERSISTENT, Message.DEFAULT_PRIORITY, Message.DEFAULT_TIME_TO_LIVE);

    TextMessage message2 = session.createTextMessage();
    String type = "myJMSType";
    message2.setJMSType(type);
    message2.setText("text + type");
    producer.send(message2, DeliveryMode.NON_PERSISTENT, Message.DEFAULT_PRIORITY, Message.DEFAULT_TIME_TO_LIVE);

    producer.close();

    final QueueViewMBean proxy = getProxyToQueue(name.getMethodName());
    assertTrue("Queue did not get all expected messages", Wait.waitFor(new Wait.Condition() {

        @Override
        public boolean isSatisfied() throws Exception {
            return proxy.getQueueSize() == 2;
        }
    }));

    MessageConsumer consumer = session.createConsumer(queue, "JMSType = '" + type + "'");
    Message msg = consumer.receive(5000);
    assertNotNull("No message was recieved", msg);
    assertTrue(msg instanceof TextMessage);
    assertEquals("Unexpected JMSType value", type, msg.getJMSType());
    assertEquals("Unexpected message content", "text + type", ((TextMessage) msg).getText());
}
 
Example #27
Source File: JmsMessageConsumerTest.java    From qpid-jms with Apache License 2.0 5 votes vote down vote up
@Test(timeout = 60000)
public void testMessagesAreAckedAMQPProducer() throws Exception {
    int messagesSent = 3;

    connection = createAmqpConnection();
    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    Queue queue = session.createQueue(name.getMethodName());
    MessageProducer producer = session.createProducer(queue);
    producer.setDeliveryMode(DeliveryMode.PERSISTENT);
    TextMessage message = null;
    for (int i=0; i < messagesSent; i++) {
        message = session.createTextMessage();
        String messageText = "Hello " + i + " sent at " + new java.util.Date().toString();
        message.setText(messageText);
        LOG.debug(">>>> Sent [{}]", messageText);
        producer.send(message);
    }

    connection.close();

    // After the first restart we should get all messages sent above
    restartPrimaryBroker();
    QueueViewMBean proxy = getProxyToQueue(name.getMethodName());
    assertEquals(messagesSent, proxy.getQueueSize());
    int messagesReceived = readAllMessages();
    assertEquals(messagesSent, messagesReceived);

    // This time there should be no messages on this queue
    restartPrimaryBroker();
    proxy = getProxyToQueue(name.getMethodName());
    assertEquals(0, proxy.getQueueSize());
}
 
Example #28
Source File: JmsMessageConsumerTest.java    From qpid-jms with Apache License 2.0 5 votes vote down vote up
@Test(timeout = 60000)
public void testMessagesAreAckedAMQProducer() throws Exception {
    int messagesSent = 3;
    assertTrue(brokerService.isPersistent());

    connection = createActiveMQConnection();
    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    Queue queue = session.createQueue(name.getMethodName());
    MessageProducer p = session.createProducer(queue);
    TextMessage message = null;
    for (int i=0; i < messagesSent; i++) {
        message = session.createTextMessage();
        String messageText = "Hello " + i + " sent at " + new java.util.Date().toString();
        message.setText(messageText);
        LOG.debug(">>>> Sent [{}]", messageText);
        p.send(message);
    }
    connection.close();

    // After the first restart we should get all messages sent above
    restartPrimaryBroker();
    QueueViewMBean proxy = getProxyToQueue(name.getMethodName());
    assertEquals(messagesSent, proxy.getQueueSize());
    int messagesReceived = readAllMessages();
    assertEquals(messagesSent, messagesReceived);

    // This time there should be no messages on this queue
    restartPrimaryBroker();
    proxy = getProxyToQueue(name.getMethodName());
    assertEquals(0, proxy.getQueueSize());
}
 
Example #29
Source File: JmsMessageConsumerTest.java    From qpid-jms with Apache License 2.0 5 votes vote down vote up
@Test(timeout = 60000)
public void testCreateMessageConsumer() throws Exception {
    connection = createAmqpConnection();
    connection.start();

    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    assertNotNull(session);
    Queue queue = session.createQueue(name.getMethodName());
    session.createConsumer(queue);

    QueueViewMBean proxy = getProxyToQueue(name.getMethodName());
    assertEquals(0, proxy.getQueueSize());
}
 
Example #30
Source File: JmsMessageProducerTest.java    From qpid-jms with Apache License 2.0 5 votes vote down vote up
@Test(timeout = 20000)
public void testSendForeignMessage() throws Exception {
    connection = createAmqpConnection();
    assertNotNull(connection);
    connection.start();

    Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
    assertNotNull(session);
    Queue queue = session.createQueue(name.getMethodName());
    MessageProducer producer = session.createProducer(queue);

    QueueViewMBean proxy = getProxyToQueue(name.getMethodName());
    assertEquals(0, proxy.getQueueSize());

    String foreignPropKey = "myForeignMessageProp";
    String foreignPropValue = "ABC456XYZ";

    Connection activeMQConnection = createActiveMQConnection();
    try {
        Session activeMQSession = activeMQConnection.createSession(false, Session.AUTO_ACKNOWLEDGE);

        Message foreignMessage = activeMQSession.createMessage();
        foreignMessage.setStringProperty(foreignPropKey, foreignPropValue);

        producer.send(foreignMessage);
    } finally {
        activeMQConnection.close();
    }

    assertEquals(1, proxy.getQueueSize());

    MessageConsumer consumer = session.createConsumer(queue);
    Message receivedMessage = consumer.receive(5000);
    assertNotNull("Did not receive message as expected", receivedMessage);
    assertEquals("Unexpected property value", foreignPropValue, receivedMessage.getStringProperty(foreignPropKey));
}