2014-12-03 17 views
5

Có cách nào để xóa/thanh lọc tất cả các hàng đợi trong ActiveMQ thông qua dòng lệnh (win/linux) không? Tôi chỉ có thể tìm thấy các lệnh cho một hàng đợi cụ thể. Hoặc có thể có cách để thực hiện việc này thông qua quản trị viên activeMQ? Một lần nữa, tôi chỉ tìm thấy cách xóa/tẩy hàng đợi từng cái một, điều này có thể rất tẻ nhạt.ActiveMQ - xóa/thanh lọc tất cả các hàng đợi thông qua dòng lệnh

Cảm ơn!

Trả lời

10

Bạn có thể làm tinh chỉnh activemq.xml của bạn một chút:

<broker deleteAllMessagesOnStartup="true" ...> 

này làm việc với các cửa hàng nhắn KahaDB (nó có vấn đề với các cửa hàng nhắn JDBC), tất cả các tin nhắn của bạn sẽ bị xóa và sau đó hàng đợi sẽ bị xóa.

Khi bạn muốn xóa tất cả các hàng đợi, việc khởi động lại nhà môi giới sẽ không phải là một tùy chọn tốn kém để dọn sạch mọi thứ.

+0

Cảm ơn, nó hoạt động! – Ayelet

+0

Nó đã cứu mạng tôi, cảm ơn! – walla

+0

@walla chào mừng, rất vui được trợ giúp! – Vihar

4

Tôi đã phát triển tiện ích dòng lệnh ActiveMQ của riêng mình (activemq-cli) để thực hiện việc này. Bạn có thể tìm thấy nó ở đây: https://github.com/antonwierenga/activemq-cli (lệnh 'thanh lọc-tất cả các hàng đợi' hoặc 'loại bỏ tất cả các hàng đợi').

0

Một khả năng khác là triển khai tuyến đường Lạc đà nhỏ trong vùng chứa (ví dụ: Apache ServiceMix) hoặc đơn giản bằng cách thực hiện chương trình java chứa tuyến đường.

Ví dụ ở đây là con đường tôi hiện đang sử dụng trên máy tính phát triển của tôi, nơi tôi cũng có các ServiceMix cài đặt:

<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> 
Các vấn đề liên quan