2011-11-21 55 views
2

我有連接到activemq主題的控制檯應用程序。每個主題上每秒發佈10封郵件。經過一段時間監控應用程序內存在增加,並且在使用所有內存時,應用程序崩潰。 查看下面的轉儲。爲什麼ActiveMQTopicSubsctiber使用這麼多堆?它也是不可見的,但ListEntries約爲14000(這意味着14k消息)。Activemq主題訂閱者堆內存泄漏 - 爲什麼消息增加?

http://imageshack.us/photo/my-images/404/amqmemoryproblem.png

回答

1

一對夫婦的事情,可能是檢查:

  1. 在你的用戶,你正從主題的消息實際上被消耗?
  2. 你的prefetchLimit指定爲?
+0

1)是的,他們被消耗,我知道肯定是因爲他們登錄我的onMessage方法。 – user358448

+0

2)我沒有指定任何。讓我更新我的問題...我需要實時使用消息,所以如果一些消息變老(它在1-2秒後不會被消耗,這是舊的),我不需要它,我需要更新的消息這是後來它。我讀了關於constantPendingMessageLimitStrategy,但我不知道如何設置它(生產者和主題代碼與服務組合,我的消費者是與java jms客戶端)。是否有可能從broker uri中設置constantPendingMessageLimitStrategy,比如2)中的prefetchLimit? – user358448

+0

我解決了,謝謝。 – user358448