【问题标题】:Spring JMS listener-container listener setup timeoutSpring JMS 侦听器-容器侦听器设置超时
【发布时间】:2014-09-11 02:31:31
【问题描述】:

我最近从 3.1 升级到 spring 4.1,jms:listener-container 似乎没有在重试设置侦听器之前等待超时,就像在 3.1 中那样。我已经尝试过recovery-interval="10000",它仍然在每秒尝试大约 3 次。

这是我的 spring 配置部分:

<jms:listener-container recovery-interval="10000" connection-factory="connectionFactory">
    <jms:listener destination="${myQueueDestination}" ref="myListener" />
    <!-- many others -->
</jms:listener-container>

我在 4.1 上的日志看起来是这样的(见次):

11/09 11:56:33 WARN  [org.springframework.jms.listener.DefaultMessageListenerContainer] Setup of JMS message listener invoker failed f or destination 'MYQUEUE.NAME' - trying to recover. Cause: MQJMS2008: failed to open MQ queue ''.; nested exception is com.ibm.mq.MQException: MQJE001: Completion Code '2', Reason '2085'.
11/09 11:56:33 WARN  [org.springframework.jms.listener.DefaultMessageListenerContainer] Setup of JMS message listener invoker failed for destination 'MYQUEUE.NAME' - trying to recover. Cause: MQJMS2008: failed to open MQ queue ''.; nested exception is com.ibm.mq.MQException: MQJE001: Completion Code '2', Reason '2085'.
11/09 11:56:34 WARN  [org.springframework.jms.listener.DefaultMessageListenerContainer] Setup of JMS message listener invoker failed f (...)

而 3.1 看起来是这样的(见 5 秒延迟):

11/09 12:14:32 WARN  [org.springframework.jms.listener.DefaultMessageListenerContainer] Setup of JMS message listener invoker failed for destination 'MYQUEUE.NAME' - trying to recover. Cause: MQJMS2008: failed to open MQ queue ''.; nested exception is com.ibm.mq.MQException: MQJE001: Completion Code '2', Reason '2085'.
11/09 12:14:37 WARN  [org.springframework.jms.listener.DefaultMessageListenerContainer] Setup of JMS message listener invoker failed for destination 'MYQUEUE.NAME' - trying to recover. Cause: MQJMS2008: failed to open MQ queue ''.; nested exception is com.ibm.mq.MQException: MQJE001: Completion Code '2', Reason '2085'.
11/09 12:14:43 WARN  [org.springframework.jms.listener.DefaultMessageListenerContainer] Setup of JMS message listener invoker failed for destination 'MYQUEUE.NAME' - trying to recover. Cause: MQJMS2008: failed to open MQ queue ''.; nested exception is com.ibm.mq.MQException: MQJE001: Completion Code '2', Reason '2085'.

当队列备份时,一切正常。这些超时设置是否可用于配置?

问候

【问题讨论】:

  • 我已经用 spring-integration-jms 替换了 spring-jms 并且使用了 spring JMS 4.0,问题就消失了。仍然想知道 4.1 到底发生了什么。

标签: spring jms ibm-mq spring-integration spring-jms


【解决方案1】:

这对我来说绝对是一种回归,而且我昨天也碰巧发现了一些东西。我创建了this issue 来跟踪该问题。

【讨论】:

  • 感谢您提出问题。
猜你喜欢
  • 1970-01-01
  • 2011-08-16
  • 2015-05-19
  • 2015-05-27
  • 2013-02-17
  • 2021-08-02
  • 2015-02-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多