我使用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文件中。

09-27 18:25