2010-06-14 4 views
6

Fellow StackOverflowers, есть ли способ для удаления очереди или темы в ActiveMQ программно? Я использую стандартную постоянную ActiveMQ, и мое приложение требует, чтобы при запуске все новые очереди были динамически воссозданы (если в очереди нет сообщений, в этом случае очередь должна оставаться в наличии).ActiveMQ - Удаление программ с программным обеспечением

Я также создаю все очереди программным путем через сеансы. Есть ли эквивалент этой процедуры, только для удаления очереди? Запросы и повторение с помощью существующих очередей также были бы полезны, но я еще не нашел способа сделать это.

+0

Were вы используете встроенный или автономный ActiveMQ? – Andrejs

ответ

0

Хотя есть не много конкретных примеров, есть некоторые документы об этом здесь: http://activemq.apache.org/how-do-i-purge-a-queue.html

+0

Спасибо, я посмотрю позже интерфейс BrokerViewMBean и посмотрю, что я могу с ним сделать. Я дам вам знать, если это сработает. –

4

Чтобы удалить пункт назначения из ActiveMQ программно, вам нужно будет сделать это через JMX, используя методы removeTopic и removeQueue на брокер MBean (org.apache.activemq:BrokerName=localhost,Type=Broker). Я отправил некоторый пример кода, чтобы продемонстрировать это, в том числе с использованием метода removeTopic, над на Gist:

http://gist.github.com/439668

Надежда, что помогает.

Брюс

6

Вы можете также Delete Destinations, которые неактивны в течение некоторого периода времени. Выпускается с активной MQ 5,4

В качестве альтернативы, если вы работаете ActiveMQ внедренные вы можете использовать API для удаления назначения: Region.removeDestination

2

Если вы используете пружинный JmsTemplate, вы можете сделать это следующим образом:

Connection cn = getJmsTemplate().getConnectionFactory().createConnection(); 
ActiveMQDestination destination = ActiveMQDestination.createDestination(queueName, ActiveMQDestination.QUEUE_TYPE);    

if(cn instanceof PooledConnection){ 
    ((PooledConnection)cn).getConnection().destroyDestination(destination); 
} 
Смежные вопросы