当前位置: 首页 > 知识库问答 >
问题:

ActiveMQ挂起消息

方河
2023-03-14

我对ActiveMQ有一个类似的问题:http://activemq.2283324.n4.nabble.com/Messages-stuck-in-pending-td4617979.html已经尝试了这里发布的解决方案。

有些消息似乎卡在队列上,可以在那里坐几天而不被消费。我有足够多的消费者大部分时间都是免费的,所以这不是消费者“饱和”的问题。

重新启动ActiveMQ后,一些待处理的消息会立即被消耗。就在刚才,我遇到了这样的情况,我有25个免费消费者可用于排队(他们在管理面板中可见),其中7个“卡住”消息。其中4个被立即消耗,但其他3个仍然卡住。另一个奇怪的事情是——新消息不断进入队列并立即被消耗,而3个旧消息仍然卡住。

在消费者方面,我在Spring的配置如下所示:

<jms:listener-container concurrency="${activemq.concurrent.consumers}" prefetch="1">
    <jms:listener destination="queue.request" response-destination="queue.response" ref="requestConsumer" method="onRequest"/>
</jms:listener-container>

<bean id="prefetchPolicy" class="org.apache.activemq.ActiveMQPrefetchPolicy">
        <property name="queuePrefetch" value="1" />
</bean>

<bean id="connectionFactory" class="org.apache.activemq.spring.ActiveMQConnectionFactory">
    <property name="brokerURL" value="${activemq.broker.url}?initialReconnectDelay=100&amp;maxReconnectDelay=10000&amp;startupMaxReconnectAttempts=3"/>
    <property name="prefetchPolicy" ref="prefetchPolicy"/>
</bean>

共有1个答案

督烨赫
2023-03-14

“卡住”的消息可能被认为是“正在传递”,重新启动代理将关闭连接,并且由于消息尚未被确认,代理将认为它们未传递并将再次传递。

可能有几个问题会导致这种情况,最常见的问题是事务/确认配置中的问题、消费者端错误/确认管理不好(消息已被消费但从未确认)或消费者陷入无休止的操作中(例如,阻止对第三方资源的调用,该资源没有响应,也没有超时处理)。

 类似资料:
  • 问题内容: 我有一个使用SSL传输的activeMQ代理。我大约有10位使用代理的消费者。我正在使用骆驼配置路线。 即使我重新启动使用者,它总是挂断并且不会使用新消息,即使队列中有待处理的消息也是如此。 我开始尝试一次遍历我的消费者,试图找出问题所在,以找出问题的根源。我终于找到了一个消费者,我可以重新解决这个问题。一段时间后它将挂起,但是,如果我进入活动的MQ管理控制台并尝试查看队列中的消息,它

  • 我有一个使用SSL传输的activeMQ代理。我有大约10个消费者正在使用经纪人。我正在使用camel来配置我的路线。 谢谢

  • 我对ActiveMQ有一个奇怪的问题。我有一个队列,似乎有一个挂起的消息,但当我打开队列时,没有消息。 这里怎么了?真的有消息等待处理吗?我怎样才能把信息带回来,或者至少能看到内容? 编辑:刚刚发现ActiveMQ 5.6.0的这两个错误。这可能是那个问题的根源吗? 不正确的报告挂起QueueSize的持久子后重新连接与未破解 OrderPendingList中的问题可能导致在持久子重新连接后无法

  • 我有一个使用activeMQ消息的项目。它运行良好,但有时会遇到挂起的消息卡在队列中。它说1000入队,0出队,1000分派。它还说1000条待处理的消息。 “待定消息”的可能原因是什么?

  • 我想取消定义服务的AlarmManager,在此服务中可以启动新的AlarmManager或取消以前定义的报警。我知道alarmManager里的params Pendingtent。取消(挂起内容),必须相同。与filterEquals(Intent other)相比,它仍然不起作用。取消失败。这是我的密码 GetRoundSilence Service和GerRoundNormalServic

  • 我有一个在Payara 4.1.2.173上运行的应用程序。应用程序应该发送和接收JMS消息,因此,我使用Apache ActiveMQ Artemis。我选择ActiveMQ Artemis是因为ActiveMQ只支持JMS1.1,而ActiveMQ Artemis支持JMS2.0。 但是我觉得奇怪的是,ActiveMQ Artemis没有提供资源适配器(.rar文件),而ActiveMQ却提供