ActiveMQ — Программное удаление очередей

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

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


person Eduardo Z.    schedule 14.06.2010    source источник
comment
Вы использовали встроенный или автономный ActiveMQ?   -  person Andrejs    schedule 01.03.2014


Ответы (4)


Вы также можете Удалить адресаты, которые неактивны в течение определенного периода времени. Доступно начиная с Active MQ 5.4

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

person Andrejs    schedule 23.02.2012

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

http://gist.github.com/439668

Надеюсь, это поможет.

Брюс

person bsnyder    schedule 15.06.2010

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

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

if(cn instanceof PooledConnection){
    ((PooledConnection)cn).getConnection().destroyDestination(destination );
}
person Yu Jiaao    schedule 06.05.2014

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

person nos    schedule 14.06.2010
comment
Спасибо, нет, позже я посмотрю на интерфейс BrokerViewMBean и посмотрю, что я могу с ним сделать. Я дам вам знать, если это сработает. - person Eduardo Z.; 14.06.2010