Spring 无法停止MQUE侦听器
我的MQUE具有以下配置:Spring 无法停止MQUE侦听器,spring,message-queue,lifecycle,spring-jms,Spring,Message Queue,Lifecycle,Spring Jms,我的MQUE具有以下配置: <jms:listener-container container-type="default" connection-factory="cachedConnectionFactory" acknowledge="auto"> <jms:listener id="myListenerId" destination="myDestination" ref="myListener" method="onMessage" /> </jm
<jms:listener-container container-type="default" connection-factory="cachedConnectionFactory" acknowledge="auto">
<jms:listener id="myListenerId" destination="myDestination" ref="myListener" method="onMessage" />
</jms:listener-container>
附言:
- 当我
我的侦听器时,stop()
返回False,但我仍然通过MQUE获取消息。。。会触发isRunning()
onMessage
是类jmsManagement
生命周期的一个实例。即使我将其更改为
,也是一样DefaultMessageListenerContainer
- 我在调用
之前收到消息,即使start()
设置为falseautoStartup
jmsManagement.shutdown()代码>未阻止侦听器被触发
有什么我遗漏的吗?我实际上必须将
autoStartup
设置为true
由于我无法使用jms:listener容器
,因此我实例化了一个DefaultMessageListenerContainer
bean,并将autoStartup
属性设置为false
以下是对我有效的代码:
<bean class="org.springframework.jms.listener.DefaultMessageListenerContainer" id="pitagorCPYListener">
<property name="autoStartup" value="false" />
<property name="connectionFactory" ref="cachedConnectionFactory" />
<property name="destination" ref="defaultDestination" />
<property name="messageListener" ref="listenerPitagorCPY" />
</bean>
<bean id="defaultDestination" class="com.ibm.mq.jms.MQQueue">
<constructor-arg value="#{mqConnectionFactory.destination}"/>
</bean>
cachedConnectionFactory的缓存级别是多少?他一定是1@HassenBennour它实际上等于3
对不起,我指的是DefaultMessageListenerContainer.cacheLevel,请尝试调用DefaultMessageListenerContainer.shutdown()停止连接并关闭listeners@HassenBennourcacheLevel等于3<代码>jmsManagement.shutdown()代码>未阻止侦听器被触发。。。我也找不到一个逻辑结论,我不明白你是怎么做的myProject.instance.getContext().getBean('myListenerId',DefaultMessageListenerContainer.class');毫无例外,因为myListenerId是一个侦听器
<bean class="org.springframework.jms.listener.DefaultMessageListenerContainer" id="pitagorCPYListener">
<property name="autoStartup" value="false" />
<property name="connectionFactory" ref="cachedConnectionFactory" />
<property name="destination" ref="defaultDestination" />
<property name="messageListener" ref="listenerPitagorCPY" />
</bean>
<bean id="defaultDestination" class="com.ibm.mq.jms.MQQueue">
<constructor-arg value="#{mqConnectionFactory.destination}"/>
</bean>