我最近从3.1升级到了spring 4.1,jms:listener-container
似乎不像3.1中那样等待超时后再尝试设置侦听器。我试过recovery-interval="10000"
,它每秒仍在尝试3次。
这是我春季配置的一部分:
<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'.
队列备份后,一切正常。这些超时设置可用于配置吗?
问候
这对我来说无疑是一次回归,也是我昨天偶然发现的。我创建这个问题是为了跟踪这个问题。