如何启用ActiveMQ持久性?

如何启用ActiveMQ持久性?

我想在 amq 或机器重启后保存未使用的消息。此文档是否适用于 ActiveMQ 5.12.1 版本?我尝试使用文档中的示例并收到错误:

错误 | 加载失败:类路径资源 [activemq.xml],原因:类路径资源 [activemq.xml] 中的 XML 文档第 86 行无效;嵌套异常为 org.xml.sax.SAXParseException;lineNumber:86;columnNumber:90;cvc-complex-type.2.4.a:以元素“kahaPersistenceAdapter”开头发现无效内容。“{”之一http://activemq.apache.org/schema/core“:jdbcPersistenceAdapter,”http://activemq.apache.org/schema/core“:journalPersistenceAdapter,”http://activemq.apache.org/schema/core“:kahaDB, “http://activemq.apache.org/schema/core“:levelDB,”http://activemq.apache.org/schema/core“:mKahaDB,”http://activemq.apache.org/schema/core“:memoryPersistenceAdapter,”http://activemq.apache.org/schema/core“:replicatedLevelDB,WC[##其他:”http://activemq.apache.org/schema/core“]}' 是期待。

几乎在默认配置下都会发生此错误:https://yadi.sk/d/e8tWyIzyk9piV

好吧,我将 kahaPersistenceAdapter 替换为 kahaDB 并重新启动。然后出现错误:

属性“maxDataFileLength”不允许出现在元素“kahaDB”中。

我替换了此属性,ActiveMQ 启动了。我将消息发送到队列,重新启动 amq,未使用的消息就消失了。我做错了什么?

答案1

嗯,您只需发送带有消息的特殊标题。

$amq_headers['persistent'] = "true";

并且您的消息仍然存在。

相关内容