【问题标题】:Not able to Stop MQueue listener无法停止 MQueue 侦听器
【发布时间】:2017-04-04 12:51:45
【问题描述】:

我的 MQueue 有以下配置:

<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 消息时,我编写了以下代码

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 侦听器吗? 有什么我想念的吗?

【问题讨论】:

  • cachedConnectionFactory 的缓存级别是多少?他必须 >= 1
  • @HassenBennour 实际上等于 3 &lt;property name="sessionCacheSize" value="3" /&gt;
  • 对不起,我的意思是 DefaultMessageListenerContainer.cacheLevel,尝试调用 DefaultMessageListenerContainer.shutdown() 来停止连接并关闭监听器
  • @HassenBennour cacheLevel 等于 3。jmsManagement.shutdown(); 没有阻止监听器被触发...我找不到逻辑结论
  • 我也是,我不明白你是怎么做到的 myProject.instance.getContext().getBean('myListenerId',DefaultMessageListenerContainer.class);无一例外,因为 myListenerId 是一个监听器

标签: spring message-queue lifecycle spring-jms


【解决方案1】:

我实际上必须将autoStartup 设置为true

由于我不能使用jms:listener-container 来做到这一点,所以我实例化了一个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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-20
    • 2017-11-05
    • 2011-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多