【问题标题】:Clear existing messages in activemq queue, just after starting application using activemq-cpp使用 activemq-cpp 启动应用程序后,清除 activemq 队列中的现有消息
【发布时间】:2013-05-02 07:03:02
【问题描述】:
我有一个应用程序充当 activemq 中队列的消费者。本应用是c++编写的,使用activemq-cpp获取activemq的服务。
我想要实现的是,当我的应用程序出现故障并再次启动时,它应该首先删除在我的应用程序停机期间填充到队列中的所有消息,即它应该首先删除队列中的所有旧消息并且然后开始接收新消息。
有没有什么办法可以使用activemq-cpp来实现呢?
【问题讨论】:
标签:
activemq
activemq-cpp
【解决方案1】:
如果您将 Connection 实例转换为 ActiveMQConnection ,则有一个 destroyDestination 方法,如果在调用时没有活动订阅,该方法将从代理和所有消息中删除目标,否则它将引发异常,因此请为此做好准备。接下来是一个小代码sn-p。
ActiveMQConnection* connection =
dynamic_cast<ActiveMQConnection*>( cmsConnection );
try {
connection->destroyDestination(destination);
} catch(Exception& ex) {
}