1

我今天从我的 JMS 主题订阅者那里注册了一个持久订阅。我通过设置一个唯一的客户端 ID 并给订阅一个订阅名称来做到这一点:

connection.setClientId("worker" + this.pid);
session.createDurableSubscriber(xyzTopic, "xyzSubscription");

现在,当我开始工作时,我看到以下错误:

12/06/18 22:30:42 WARN broker.TransportConnection:无法添加连接 ID:xxxxxx-45841-1340045847830-1:1,原因:javax.jms.InvalidClientIDException:代理:本地主机 - 客户端:worker2 已从 tcp 连接://127.0.0.1:52796 12/06/18 22:30:42 WARN TransportConnection.Service:发生异步错误:java.lang.IllegalStateException:无法将生产者添加到尚未注册的连接:ID:xxxxxx- 45841-1340045847830-1:1

(主机名替换为 xxxxxx)

我仍在开发环境中,但我认为当我重新启动 ActiveMQ(使用 maven 目标 activemq:run)时,一切都会重置。然而,情况似乎并非如此。

问题: 如何重置整个 activeMQ 并清除所有持久化状态,例如持久订阅。

还有究竟是什么导致了这个错误?我的客户端没有显示任何异常,只有 activeMQ 显示上述错误以及几个相同的异常。

4

1 回答 1

1

在不了解更多信息的情况下,很难说出导致错误的原因,但要重置所有内容,您只需删除安装 ActiveMQ 的 ./data/ 目录的内容即可。

于 2012-06-19T20:00:36.950 回答