Exemplo n.º 1
0
 @Test
 public void noMatchingRoutes() throws JMSException {
   String expected = "'no matching route'";
   QueueReceiver qr = messageManager.createQueueReceiver("queue/DLQ");
   clear(qr);
   plainEvent.fire(expected);
   Message m = qr.receive(3000);
   qr.close();
   Assert.assertNull("Unexpectedly received a message", m);
 }
Exemplo n.º 2
0
 public static Message queueReceiver(QueueConnection cnn, String queueName, long timeout)
     throws JMSException {
   QueueSession session = cnn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
   Queue queue = session.createQueue(queueName);
   QueueReceiver receiver = session.createReceiver(queue);
   Message msg = receiver.receive(timeout);
   if (msg != null) msg.acknowledge();
   receiver.close();
   session.close();
   return msg;
 }
Exemplo n.º 3
0
 @Test
 public void forwardSimpleEvent_via_single_route_config() throws JMSException {
   String expected = "'configured via Route'";
   QueueReceiver qr = messageManager.createQueueReceiver("queue/DLQ");
   clear(qr);
   event_viaSingleRouteConfig.fire(expected);
   Message m = qr.receive(3000);
   qr.close();
   Assert.assertTrue(m != null);
   Assert.assertTrue(m instanceof TextMessage);
   Assert.assertEquals(expected, ((TextMessage) m).getText());
 }
Exemplo n.º 4
0
 public static void drainQueue(QueueConnection cnn, String queue) throws Exception {
   QueueSession session = cnn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
   Queue q = session.createQueue(queue);
   QueueReceiver receiver = session.createReceiver(q);
   // Add a delay so that activeMQ can fetch messages from the broker
   // Thread.sleep(5000);
   Message msg = null;
   while ((msg = receiver.receive(1000)) != null) {
     System.out.println("Removing message: " + msg);
     msg.acknowledge();
   }
   receiver.close();
   session.close();
 }
  public static void main(String[] args) {
    try {
      QueueConnectionFactory queueConnectionFactory;
      QueueConnection queueConnection;
      QueueSession queueSession;
      QueueReceiver queueReceiver;
      Queue queue;
      TextMessage msg;

      // JNDI InitialContextを作成します
      InitialContext ctx = new InitialContext();
      // Connection FactoryとQueueをLook upします
      queueConnectionFactory = (QueueConnectionFactory) ctx.lookup(JMS_FACTORY);
      queue = (Queue) ctx.lookup(QUEUE);

      // コネクションを作成
      queueConnection = queueConnectionFactory.createQueueConnection();
      // セッションを作成
      queueSession = queueConnection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
      // キューレシーバーを作成
      queueReceiver = queueSession.createReceiver(queue);
      // メッセージの配送をスタート
      queueConnection.start();
      // メッセージの受信
      while (true) {
        Message m = queueReceiver.receive(1);
        if (m != null) {
          if (m instanceof TextMessage) {
            msg = (TextMessage) m;
            System.out.println(msg.getText());
          } else {
            break;
          }
        }
      }
      // 接続を切断
      queueReceiver.close();
      queueSession.close();
      queueConnection.close();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
Exemplo n.º 6
0
 /**
  * Closes JMS objects.
  *
  * @exception JMSException if JMS fails to close objects due to internal error
  */
 public void close() throws JMSException {
   qreceiver.close();
   qsession.close();
   qcon.close();
 }
Exemplo n.º 7
0
 private void close(QueueReceiver receiver) throws Exception {
   receiver.close();
 }
 @Test(timeout = 30000)
 public void testReceiverCloseAgain() throws Exception {
   // Close it again (closing the session should have closed it already).
   receiver.close();
 }