web-dev-qa-db-ja.com

ActiveMQ-コマンドラインからすべてのキューを削除/パージ

コマンドライン(win/linux)を介してActiveMQのすべてのキューを削除/パージする方法はありますか?特定のキューのコマンドしか見つかりませんでした。それとも、ActiveMQ管理者を介してこれを行う方法がありますか?繰り返しますが、キューを1つずつ削除/パージする方法を見つけましたが、これは非常に退屈な作業です。

ありがとう!

13
Ayelet

あなたはあなたの微調整を行うことができますactivemq.xml少し:

<broker deleteAllMessagesOnStartup="true"  ...>

これはKahaDBメッセージストアで機能し(JDBCメッセージストアで問題があります)、すべてのメッセージが削除され、その後キューがクリアされます。

すべてのキューを削除する必要があるため、ブローカーを再起動しても、すべてをクリーンアップするためのコストのかかるオプションにはなりません。

パージは「毎回」の再起動時に行われます

20
Vihar

これを行うために、私は自分のActiveMQコマンドラインユーティリティ(activemq-cli)を開発しました。あなたはそれをここに見つけることができます: https://github.com/antonwierenga/activemq-cli (command 'purge-all-queues' or 'remove-all-queues')。

4
Anton

バージョン5.0以降では、次のようになります ActiveMQで提供されるCLIを使用して実行 自体:

$ ActiveMQ/bin/activemq purge
3
J. Perkins

1-私の場合、amq binフォルダーに移動します。

cd /opt/amq/bin

2-amqクライアントを実行します。

./client

3-目的のキューでパージを実行します

activemq:purge <QUEUE NAME HERE>
0
Shell_Leko

別の可能性は、コンテナ(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>
0
рüффп