Active MQ Consumer在多次重启后停止接收消息。需要重启Active MQ

时间:2014-12-02 11:53:29

标签: java spring jms activemq

我有一个队列(Active MQ)。我有一个生产者将消息发送到队列,我有一个消费者从队列中读取消息。消费者委托将消息处理到新线程,并处理另一条消息。

我的使用者实现了javax.jms.MessageListener及其onMessage()方法。

它是一个Spring应用程序。 使用者的applicationContext.xml包含以下内容:

    

<!-- ActiveMQ broker -->
<amq:connectionFactory id="jmsFactory" brokerURL="${jms.brokerURL}" />

<!-- JMS Consumer Configuration -->
<bean id="jmsConsumerConnectionFactory"
      class="org.springframework.jms.connection.SingleConnectionFactory"
      p:targetConnectionFactory-ref="jmsFactory"/>


<jms:listener-container container-type="default"
                        connection-factory="jmsConsumerConnectionFactory"
                        acknowledge="client">
    <jms:listener destination="myQueue" ref="myConsumer" />
</jms:listener-container>

另外,我的consumer bean有init()方法(使用@PostConstruct注释),它在启动时使用@Autowired生产者服务将一些消息写入队列。

一切正常。但是当我多次重启消费者时,它会停止接收任何消息。 Active MQ控制台将消息显示为挂起。 重新启动Active MQ可以解决问题,而消费者会收到所有待处理的消息。

任何想法都会非常感激。 感谢

0 个答案:

没有答案
相关问题