0

activeMQ インスタンスを開始または再起動するときに、選択したキュー (例: FOO.BAR) をクリア/パージするにはどうすればよいですか?

activemq.xml またはこれを処理する他の方法で構成できる方法はありますか?

現在、ActiveMQ の 2 つのインスタンス (instance1 と instance2) を実行しているクラスター環境があることに注意してください。

deleteAllMessagesOnStartup="true"注:使用可能なすべてのキューが削除されるため、使用したくありません。

ActiveMQ で Apache Camel を使用しようとしています。Camelでもこれを実現できるかどうか教えてください。

4

3 に答える 3

2

JMX パージ メソッドを使用してキューをクリアするか、deleteAllMessagesOnStartup を使用する必要があります。単一のキューまたは一連のキューをパージするための構成はありません。これは管理操作です。しばらくしてからメッセージを消す必要がある場合は、メッセージに有効期限を設定することを検討してください。

于 2013-10-16T13:45:44.297 に答える
0

率直な答えが見つからなかったので、ApacheCamel で処理しようと考えました。をセットする

ProducerTemplate sendBody 

なので

ascExchangePattern.InOut

したがって、クライアントが切断された場合、または ActiveMQ インスタンスが再起動された場合、保留中のキュー メッセージはデッド レター キューに移動し、後でそれらのメッセージを処理できます。

于 2013-10-17T10:44:07.433 に答える
0

できることは、activemq 起動スクリプトを次のようにカスタマイズすることです。

  1. activemq を開始します (明らかに)
  2. 選択したキューを消去するには、activemq-admin.bat または activemq-admin.sh を使用します

構文は次のようになります。

activemq-admin.bat purge name_of_your_broker name_of_the_queue

ここでの秘訣は、activemq が完全に初期化されたときに 2 番目のスクリプトのみを起動することです。

于 2013-10-17T06:32:19.913 に答える