一个月以来,我们在 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>
任何日志中都没有例外。有谁知道为什么一段时间后无法启动新消费者的原因。
谢谢