Нет вызова API для очистки всех очередей в посреднике. Один из способов сделать это состоит в том, чтобы получить все имена очередей из ActiveMQServerControl
, просмотреть очереди и вызвать deleteAllReferences()
для всех из них, например ::
for (String queueName : server.getActiveMQServerControl().getQueueNames()) {
Queue queue = server.locateQueue(SimpleString.toSimpleString(queueName));
if (queue != null) {
queue.deleteAllReferences();
}
}
Убедитесь, что все ваши клиенты остановлены при выполнении этого кода, в противном случае сообщения, которые находятся "в процессе доставки" (т.е. сообщения, которые были отправлены клиенту, но еще не были подтверждены клиентом), не будут удалены.