首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法停止MQueue侦听器

无法停止MQueue侦听器
EN

Stack Overflow用户
提问于 2017-04-04 12:51:45
回答 1查看 759关注 0票数 1

我的MQueue有以下配置:

代码语言:javascript
复制
<jms:listener-container container-type="default" connection-factory="cachedConnectionFactory" acknowledge="auto">
    <jms:listener id="myListenerId" destination="myDestination" ref="myListener" method="onMessage" />
</jms:listener-container>

当我试图停止JMS消息的接收时,我编写了以下代码

代码语言:javascript
复制
jmsManagement = myProject.instance.getContext().getBean('myListenerId',Lifecycle.class);
jmsManagement.stop();

PS:

  • 当我stop()我的侦听器时,isRunning()返回False,但是我仍然通过MQueue获得消息.onMessage被触发。
  • jmsManagement是类Lifecycle的一个实例。即使我把它改为DefaultMessageListenerContainer,也是一样的。
  • 我在调用start()之前接收消息,即使autoStartup设置为false。
  • jmsManagement.shutdown();没有阻止侦听器被触发。

有人知道如何停止这个MQ侦听器吗?我遗漏了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-05 16:05:19

实际上,我不得不将autoStartup设置为true。

因为我不能使用jms:listener-container实现这一点,所以我实例化了一个DefaultMessageListenerContainer bean,并将autoStartup属性设置为false。

下面是对我有用的代码:

代码语言:javascript
复制
<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>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43207792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档