我需要能够使用 Apache.NMS (C#) 以编程方式清除队列。我一直在查看 NMS API,但没有看到这样的功能。它存在吗?
问问题
2487 次
2 回答
6
没有直接的方法可以从 NMS API 中刷新队列,这更像是一种管理功能。您可以将 IConnection 实例转换为 Apahce.NMS.ActiveMQ.Connection,然后调用 DeleteDestination。如果队列上没有消费者,这将起作用,但如果有,则会抛出异常。
于 2011-02-16T19:50:11.517 回答
0
不完全确定“刷新”队列(删除所有消息?)是什么意思,但您可以通过设置会话事务来管理消息:
ISession consumerSession = = connection.CreateSession(AcknowledgementMode.Transactional);
然后你可以使用:
//will remove message from queue on success
consumerSession.Commit();
或者:
//on failure, back on queue
consumerSession.Rollback();
于 2012-04-23T17:11:04.143 回答