我使用AcviteMq v 5.9.1和非持久性消息。我的问题是
OutOfMemory:堆大小
我知道这种问题在此站点上,但是我找不到我的特定问题。我知道非持久消息存储在内存中,所以我收到此错误。我也知道我可以增加Xms / Xmx,但这不能解决问题(当我收到更多消息时,也可能会收到此错误)。
http://activemq.apache.org/message-cursors.html
我在activeMq网站上看到有3个游标,并且fileQueueCurosr将存储的消息写入文件。我为此光标设置了配置,但是它也不起作用。
<policyEntry queue="foo.bar.>">
<pendingQueuePolicy>
<fileQueueCursor />
</pendingQueuePolicy>
</policyEntry>
也许有人遇到类似的问题,可以帮助我吗?或者,也许这个光标没有笑起来,我必须设置其他内容?
-Xmx和Xmx默认设置为1GB / 1GB。
///// @ kartik回答后更新23.04.15
<policyEntry queue="foo.bar.>" memoryLimit="10mb" (or 30mb) producerFlowControl="false">
<pendingQueuePolicy>
<fileQueueCursor />
</pendingQueuePolicy>
</policyEntry>
最佳答案
将fileQueueCursor与memoryLimit代理配合使用。例如,在以下情况下,代理可以使用的可用RAM总量为1.5 GB。
“ memoryLimit =” 1500mb“ producerFlowControl =” false“>
设置内存使用率%。之后,该代理会将消息推送到KahaDB tmp文件中。