MQ的事件侦听器在队列为空时停止侦听

时间:2015-09-01 15:33:14

标签: java events jms mq

我正在尝试将消息侦听器连接到MQ。

Queue primaryQueue = session.createQueue("Q1");
MessageConsumer primaryConsumer = session.createConsumer(primaryQueue);
primaryConsumer.setMessageListener(new MessageListener() {

            @Override
            public void onMessage(Message message) {
                ObjectMessage objectMessage = (ObjectMessage) message;
                try {
                    Payload payload = (Payload) objectMessage.getObject();
                    System.out.println("Payload\n" + payload);
                } catch (JMSException e) {
                    e.printStackTrace();
                }

            }
});

这只是一个连接到队列的简单控制台应用程序。但是,在我启动应用程序并附加监听器之后,它会读取当前的消息集并且只是...停止。如果我在几秒钟之后将另一条消息发送到队列中,则监听器甚至没有准备好接收它。我正在使用我在本地运行的Websphere MQ。

我有点期待应用程序喜欢挂起并等待再次被触发?连接一个监听器的关键在于它可以对传入的消息做出反应,而不是在物理上对它进行recieve()

我是消息和队列的新手,所以我想我错过了一些明显的东西。感谢帮助。

0 个答案:

没有答案