如何停止/启动 spring DefaultMessageListenerContainer? [英] How to stop/start spring DefaultMessageListenerContainer?

查看:35
本文介绍了如何停止/启动 spring DefaultMessageListenerContainer?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经开发了使用 Spring JMS 接收来自队列的消息的项目.并部署了Websphere Application Server (WAS 7.5) 集群环境.一旦部署在服务器中,它就可以正常工作.后来我更新了我的记录器信息并部署到服务器中.似乎服务器没有选择最新的代码库.即使我已经停止/启动集群.

请参考下面的配置xml.

<property name="hostName" value="${hostName}"/><property name="port" value="${port}"/><property name="queueManager" value="${queueManager}"/><property name="transportType" value="${transportType}"/><property name="channel" value="${channel}"/></bean><jms:listener-container container-type="default"connection-factory="connectionFactory"acknowledge="auto" concurrency="5" ><jms:listener destination="DEV.TESTQUEUE" ref="jmsMessageListener"</jms:listener-container><bean id="jmsMessageListener" class="JmsMessageListener"/>公共类 JmsMessageListener 实现 MessageListener {公共无效onMessage(消息消息){}}

<前>您能否建议如何停止/启动容器?

解决方案

这是我的解决方案:

final Map容器 = ctx.getBeansOfType(DefaultMessageListenerContainer.class);如果(容器 != null && !containers.isEmpty()) {for (DefaultMessageListenerContainer 容器:containers.values()) {容器停止();}}

I have developed project using Spring JMS to receive the message from Queue. and it is deployed Websphere application Server (WAS 7.5) clustered environment. it is working fine once it is deployed in server.Later i have update my logger information and deployed in to server. it seems server not picking the latest code base. Even though i have stop/start the cluster.

Please refer below config xml.

<bean id="connectionFactory" class="com.ibm.mq.jms.MQQueueConnectionFactory">
            <property name="hostName" value="${hostName}"/>
            <property name="port" value="${port}"/>
            <property name="queueManager" value="${queueManager}"/>
            <property name="transportType" value="${transportType}"/>
            <property name="channel" value="${channel}"/> 
   </bean>

   <jms:listener-container container-type="default"
connection-factory="connectionFactory" acknowledge="auto" concurrency="5" >
<jms:listener destination="DEV.TESTQUEUE" ref="jmsMessageListener" 
</jms:listener-container>

 <bean id="jmsMessageListener" class="JmsMessageListener"/>


      public class JmsMessageListener implements MessageListener { 

    public void onMessage(Message message) {

      }
    }

Could you please advise how to stop/start the container? 

解决方案

Here is my solution:

final Map<String, DefaultMessageListenerContainer> containers = ctx.getBeansOfType(DefaultMessageListenerContainer.class);
        if (containers != null && !containers.isEmpty()) {
            for (DefaultMessageListenerContainer container : containers.values()) {
                container.stop();
            }
        }

这篇关于如何停止/启动 spring DefaultMessageListenerContainer?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆