簡體   English   中英

如果使用者未確認消息,ActiveMQ將停止向隊列使用者發送消息

[英]ActiveMQ stops sending messages to Queue Consumer in case of consumer not acknowledging messages

我們有一個用例,其中我們僅創建一個使用者來處理隊列中的消息。 消息處理器在確認之前累積一定數量的消息。 以異步方式並使用事務會話接收消息。 消息的大小很小。

在一定數量的消息之后,Active MQ停止向唯一的使用者發送更多消息,並等待確認。 我們已經嘗試了諸如consumer.prefetchSizeconsumer.maximumPendingMessageLimit之類的解決方案; 但沒有任何效果。 我們使用只有一個訂戶的持久主題嘗試了類似的用例,並且效果很好。

有沒有人遇到過類似的activemq問題/行為? 我們嘗試了在不同論壇上提到的許多事情,但沒有一個有幫助。

Activemq版本: ActiveMQ 5.6.0
隊列配置: 持久隊列
使用者: 異步,並使用事務處理的會話作為確認模式

任何幫助或建議,將不勝感激。 謝謝。

我通過設置不同的activemq屬性(如預取策略,maxpagesize等)嘗試了許多不同的配置來解決此問題,但是它們都沒有真正的幫助。 通過參考@Jake的評論,我了解了通過JConsole使用JMX監視activemq的知識。 這是監視和管理您的activemq的非常方便的工具。 以下是您可能會覺得有用的幾篇文章。
1. 監視activemq
2. 使用JConsole連接activemq JMX

通過監視隊列屬性,我發現對memoryLimit屬性分配的值很低(僅為1mb)。 增加屬性的值解決了我的問題。 JMS開始發送消息,而無需等待確認。

為了進行測試,我更改了conf / activemq.xml配置文件中的memoryLimit值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM