开发者

How can I programatically purge an ActiveMQ queue using the Apache.NMS API?

I need the ability to purge a queue pro开发者_C百科gramatically using Apache.NMS (C#). I've been looking through the NMS API, but see no such capability. Does it exist?


There isn't a direct way to flush a Queue from the NMS API, that's more of a management function. You can cast a IConnection instance into an Apahce.NMS.ActiveMQ.Connection and then call DeleteDestination. This would work if there were no consumers on the Queue but will throw an exception if there are.


Not exactly sure what you mean by "flush" a queue (delete all messages?) but you can manage messages by setting the session transactional:

ISession consumerSession = = connection.CreateSession(AcknowledgementMode.Transactional);

Then you can use either:

//will remove message from queue on success
consumerSession.Commit();

or:

//on failure, back on queue
consumerSession.Rollback();
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜