我今天从我的 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 显示上述错误以及几个相同的异常。