在使用activemq-cpp启动应用程序后立即清除activemq队列中的现有消息

时间:2013-05-02 07:03:03

标签: activemq activemq-cpp

我有一个应用程序,它充当activemq中队列的使用者。此应用程序使用c ++编写,并使用activemq-cpp获取activemq。

的服务

我想要实现的是当我的应用程序出现故障并再次出现时,它应该首先删除在我的应用程序关闭期间填充在队列中的所有消息,它应该首先删除队列中的所有旧消息和然后开始接收新消息。

有没有办法用activemq-cpp来实现这个目标?

1 个答案:

答案 0 :(得分:1)

如果将Connection实例强制转换为ActiveMQConnection,则会有一个destroyDestination方法,该方法将从代理中删除目标,如果调用时没有活动的订阅,则会删除所有消息,否则会抛出异常,因此请为此做好准备。随后是一个小代码片段。

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

    try {
        connection->destroyDestination(destination);
    } catch(Exception& ex) {
    }