Question

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?

Was it helpful?

Solution

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.

OTHER TIPS

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();
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top