【问题标题】:No new consumers on activemq queue after a while一段时间后,activemq 队列上没有新的消费者
【发布时间】:2023-04-05 17:43:01
【问题描述】:

一个月以来,我们在 activemq 和 spring 中反复出现问题。一段时间后(一天到一周之间),我们没有更多的消费者,也没有新的消费者开始,队列开始填满。

此设置运行了一年多,没有任何问题,据我们所知,没有任何相关的更改。

我们使用的另一个队列也开始显示相同的行为,但频率较低。

来自 activemq webconsole(你可以看到很多待处理的消息并且没有消费者)

Name ↑ Number Of Pending Messages Number Of Consumers Messages Enqueued Messages Dequeued Views Operations
queue.readresult 19595 0 40747 76651 Browse Active Consumers 

我们的 bundle-context.xml 的内容

<!-- JMS -->
<bean id="jmsConnectionFactory" class="org.apache.activemq.pool.PooledConnectionFactory" destroy-method="stop">
    <property name="maxConnections" value="5" />
    <property name="maximumActive" value="5" />

    <property name="connectionFactory">
        <bean class="org.apache.activemq.ActiveMQConnectionFactory">
            <property name="brokerURL">
                <value>tcp://localhost:61616</value>
            </property>
        </bean>
    </property>
</bean>


<bean id="ResultMessageConverter" class="com.bla.ResultMessageConverter" />

<jms:listener-container connection-factory="jmsConnectionFactory" destination-resolver="jmsDestinationResolver"
    concurrency="2" prefetch="10" acknowledge="auto" cache="none" message-converter="ResultMessageConverter">
    <jms:listener destination="queue.readresult" ref="ReaderRequestManager" method="handleReaderResult" />
</jms:listener-container>

任何日志中都没有例外。有谁知道为什么一段时间后无法启动新消费者的原因。

谢谢

【问题讨论】:

  • 嗨。你在这上面找到什么了吗?

标签: spring jms activemq spring-jms


【解决方案1】:

我在配置中没有看到明显的原因,提供了它应该失败的原因。所以你需要求助于经典的故障排除方法。

尝试将日志记录设置为调试并重新创建问题。然后你应该能够看到更多,你也许能够检测到它的根本原因。

此外,检查 JMS 异常侦听器并尝试将其附加到您的实现中,以掌握真正的问题。

http://docs.oracle.com/javaee/6/api/javax/jms/ExceptionListener.html

【讨论】:

    【解决方案2】:

    我在“消费者停止消费”之前遇到过问题,但还没有看到消费者停止存在。您可能正在用完池中的内存和/或连接。您是否必须重新启动 ActiveMQ 才能解决问题或只是您的应用程序?

    这里有几个建议:

    1. 将队列预取设置为 0
    2. 在连接字符串上添加“useKeepAlive=false”
    3. 增加队列的内存限制

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-27
      • 2012-08-11
      • 1970-01-01
      • 2015-10-22
      • 1970-01-01
      • 2015-03-17
      • 2020-12-01
      • 2019-03-21
      相关资源
      最近更新 更多