コマンドライン(win/linux)を介してActiveMQのすべてのキューを削除/パージする方法はありますか?特定のキューのコマンドしか見つかりませんでした。それとも、ActiveMQ管理者を介してこれを行う方法がありますか?繰り返しますが、キューを1つずつ削除/パージする方法を見つけましたが、これは非常に退屈な作業です。
ありがとう!
あなたはあなたの微調整を行うことができますactivemq.xml
少し:
<broker deleteAllMessagesOnStartup="true" ...>
これはKahaDBメッセージストアで機能し(JDBCメッセージストアで問題があります)、すべてのメッセージが削除され、その後キューがクリアされます。
すべてのキューを削除する必要があるため、ブローカーを再起動しても、すべてをクリーンアップするためのコストのかかるオプションにはなりません。
パージは「毎回」の再起動時に行われます
これを行うために、私は自分のActiveMQコマンドラインユーティリティ(activemq-cli)を開発しました。あなたはそれをここに見つけることができます: https://github.com/antonwierenga/activemq-cli (command 'purge-all-queues' or 'remove-all-queues')。
バージョン5.0以降では、次のようになります ActiveMQで提供されるCLIを使用して実行 自体:
$ ActiveMQ/bin/activemq purge
1-私の場合、amq binフォルダーに移動します。
cd /opt/amq/bin
2-amqクライアントを実行します。
./client
3-目的のキューでパージを実行します
activemq:purge <QUEUE NAME HERE>
別の可能性は、コンテナ(Apache ServiceMixなど)に小さなキャメルルートをデプロイするか、単にJavaプログラムを実行することです。
たとえば、ServiceMixもインストールされている開発コンピューターで現在使用しているルートは次のとおりです。
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ext="http://aries.Apache.org/blueprint/xmlns/blueprint-ext/v1.0.0"
xmlns:cm="http://aries.Apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
xsi:schemaLocation="
http://www.osgi.org/xmlns/blueprint/v1.0.0 http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd
http://camel.Apache.org/schema/blueprint http://camel.Apache.org/schema/blueprint/camel-blueprint.xsd
http://aries.Apache.org/blueprint/xmlns/blueprint-cm/v1.1.0 http://aries.Apache.org/schemas/blueprint-cm/blueprint-cm-1.1.0.xsd">
<cm:property-placeholder persistent-id="amq.cleanup" update-strategy="reload">
<cm:default-properties>
<cm:property name="amq.local.url" value="tcp://localhost:61616" />
</cm:default-properties>
</cm:property-placeholder>
<camelContext xmlns="http://camel.Apache.org/schema/blueprint">
<onException useOriginalMessage="true">
<exception>Java.lang.Exception</exception>
<handled>
<constant>true</constant>
</handled>
<to uri="activemq:queue:CLEANUP_DLQ" />
</onException>
<route id="drop-all-queues" autoStartup="true">
<from uri="activemq:queue:*.>" />
<stop/>
</route>
</camelContext>
<bean id="activemq" class="org.Apache.activemq.camel.component.ActiveMQComponent">
<property name="brokerURL" value="${amq.local.url}" />
</bean>
</blueprint>