我們有一個用例,其中我們只創建一個消費者來處理隊列中的消息。消息處理器在確認之前累積一定數量的消息。以異步方式接收消息並使用事務處理會話。消息的大小非常小。當消費者未確認消息時,ActiveMQ停止向隊列消費者發送消息
在某些消息並等待確認後,主動MQ停止發送更多消息給唯一消費者。我們已嘗試解決方案,如consumer.prefetchSize,consumer.maximumPendingMessageLimit;但沒有任何工作。 我們嘗試了類似的用例,只有一個訂戶的持久主題,它工作正常。
有沒有人遇到類似的activemq問題/行爲?我們嘗試了很多在不同論壇上提到的東西,但都沒有幫助。
ActiveMQ的版本:的ActiveMQ 5.6.0
隊列配置:耐久隊列
消費者:異步並使用事務會話如確認模式
任何幫助或建議將不勝感激。謝謝。
請顯示打開'QueueSession'的代碼。在'QueueSession'上調用'commit'的代碼。從第一次讀取開始直到'commit'需要多長時間? – Beryllium
我忘記了:會話是如何關閉的(在正常情況下和例外情況下) – Beryllium
由於它太大/複雜,粘貼只是代碼片段將會很難將整個代碼覆蓋在此處在理解我的問題上有所不同。當我創建隊列的使用者時,我會在收到停止請求時打開會話並關閉會話。 –