今日、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: ブローカ: localhost - クライアント: 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のみが上記のエラーといくつかの同一の例外を表示しています.