I need the ability to purge a queue programatically using Apache.NMS (C#). I've been looking through the NMS API, but see no such capability. Does it exist?
How can I programatically purge an ActiveMQ queue using the Apache.NMS API?
2.8k views Asked by Kilhoffer At
2
There are 2 answers
1
On
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();
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.