打开/关闭JMS侦听器会导致侦听器挂起

时间:2013-04-17 22:40:33

标签: spring jms listener hang

我们有一个正在监听JMS队列(WebSphere 7)的Spring项目(3.0.5)。我们需要能够打开/关闭队列侦听器。我们目前通过我们自己的RESTful端点以编程方式调用DefaultMessageListenerContainer.start()和stop()来打开/关闭监听器。

我们观察到,在两次或三次切换监听器(打开/关闭/打开或打开/关闭/打开/关闭/打开)后,监听器进入挂起状态,我们无法将其关闭。

要调试正在进行的操作,我们将日志级别设置为Trace。当侦听器成功打开时,我们会在日志中看到以下消息:

XXXX-XX-XX [myListenerContainer-1] TRACE cgcrcmMessageListenerContainer - doReceiveAndExecute - session [com.ibm.mq.jms.MQQueueSession@1872c950]的Consumer [com.ibm.mq.jms.MQQueueReceiver@45486b51]没有收到消息

但是,上次我们在挂起之前打开侦听器,我们无法在日志中看到此消息。

额外细节:

  • 无论是否有消息进入队列,都可以重现进入挂起状态。
  • 我们最后一次在听众挂起之前打开它,我们可以"纠正"通过在队列中放置消息来挂起状态。收到消息后,我们会在日志中看到健康的跟踪消息,我们可以关闭监听器。

0 个答案:

没有答案
相关问题