如何从完整的 KahaDb 持久性存储中恢复 ActiveMQ?

How to recover ActiveMQ from full KahaDb persistence store?

我使用 AMQ 5.9 时遇到网络问题,导致队列中的消息备份。我开始收到日志消息

"Usage (default:store:queue://myqueue:store) percentUsage=101% usage=6254005794, limit=6144430090, ...Stopping producer...to prevent flooding queue..)

我无法恢复并再次开始使用消息。

我尝试进入 activemq.xml 以增加我的最大存储使用量:

 <systemUsage>
    <systemUsage>
         <storeUsage>
             <storeUsage limit="15 gb" />
         </storeUsage>
    </systemUsage>
  </systemUsage>

我也试过用

关闭流量控制
  <policyEntry queue=">" producerFlowControl="false"/>

但我仍然收到相同的错误消息。

我有磁盘space。命令行上没有任何设置被覆盖。我该如何恢复和处理我的消息?

我最终找到了一种丑陋(但有效)的方法来解决这个问题。如果您通过 JMX (jconsole) 连接到 activemq,您可以导航到 mbean org.apache.activemq.Broker 并找到属性 StoreLimit。您可以在 JConsole 中手动增加此值,然后 activemq 将在不久之后重新启动消息处理。