2013-05-02 3 views
0

У меня есть приложение, которое действует как потребитель для очереди в activemq. Это приложение написано на C++ и с помощью activemq-cpp, чтобы получить услуги activemq.Очистить существующие сообщения в очереди activemq, сразу после запуска приложения с помощью activemq-cpp

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

Есть ли способ достичь этого с помощью activemq-cpp?

ответ

1

Если вы используете экземпляр Connection для ActiveMQConnection, существует метод destroyDestination, который удалит получателя из брокера и всех сообщений, если нет активных подписчиков при вызове, иначе он будет генерировать исключение, поэтому будьте готовы к этому. Ниже приводится небольшой фрагмент кода.

ActiveMQConnection* connection = 
     dynamic_cast<ActiveMQConnection*>(cmsConnection); 

    try { 
     connection->destroyDestination(destination); 
    } catch(Exception& ex) { 
    } 
Смежные вопросы