java - ActiveMQ 没有持久性

标签 java configuration activemq messagebroker

我想在生成消息的服务器和接收消息的许多客户端之间建立基于发布者-订阅者的通信协议(protocol)。经过一番研究后,我决定使用 ActiveMQ。我查看了一些教程和 ActiveMQ 站点,并按如下方式设置代理:

BrokerService broker = new BrokerService();
broker.setPersistent(false);
broker.addConnector("tcp://localhost:61616");
broker.start();

我只需要消息传递功能,不需要数据库持久性或类似功能。但是,当我启动应用程序时,无论配置如何,都会创建一个 activemq-data 文件夹。这反过来会在我下次启动代理时导致异常。

SEVERE: Failed to start ActiveMQ JMS Message Broker. Reason: java.io.EOFException: Chunk stream does not exist at page: 0

这是一个错误还是我没有正确设置代理(使用 ActiveMQ 5.4.1)?如何禁用持久性,以便不创建额外的数据存储?另外,我更喜欢在 Java 应用程序中配置代理,而不是通过 xml 文件。

干杯, 最大

最佳答案

这不是正常行为,而是 KahaDB(Activemq 中的默认持久性存储)中的一个错误

您可以查看 Bug 2935 of ActiveMQ 的信息.

您可以通过选择不同的持久性引擎来解决这个问题,尽管我奇怪地遇到过这个问题几次,然后它就消失了

关于java - ActiveMQ 没有持久性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3951220/

相关文章:

java - 从 Java 调用到 C++,然后从同一个 C++ 方法调用 Java 方法

java - 为什么我不能将 String 数组与采用 Iterable 作为参数的方法一起使用?

configuration - Apache Tika App 配置文件

ios - 如何使用方案更改 ui 元素的颜色? (Xcode, swift )

java - 从虚拟主题接收相同消息的多个队列仅为一个队列创建死信条目

c++ - 在 SGI 上运行的 ActiveMQ 的任何已知问题

java - libgdx- 像素图 : can I somehow change the width of the line?

java - 主线程运行顺序

java - Spring Jndi 配置,Server.xml

代理的 ActiveMQ 网络不转发消息