I am using persistent messages. I have not mucked with any of the backing or memory options, so thats all stock.
The way I have this working right now is (on the consumer side): Consumer creates IMessageConsumer on ActiveMQ.Advisory.Queue Consumer uses Listener += method when I get a Queue Add advisory: Consumer creates IMessageConsumer on new queue Consumer creates IMessageConsumer on AdvisorySupport.GetProducerAdvisoryTopic(newQueue); Both IMessageConsumers use Listener += method When I get a Queue Remove advisory: both IMessageConsumers use Listener -= method both IMessageConsumers .Close() and .Dispose() In the ProducerAdvisory listener, if I get a producer removed message, I: both IMessageConsumers use Listener -= method both IMessageConsumers .Close() and .Dispose() queue is deleted via _session.DeleteQueue(strQueue); On the producer side: Producer creates a "permanent" queue (MachineName+GUID) -- the consumer will get notified when this queue is created and start listening on it Producer creates a temporary queue (response queue) Producer submits messages with the reply to address = the temporary queue Messages are typically 1MB to 2MB. Are you suggesting that I should switch the response queue to be a permanent queue? -- View this message in context: http://activemq.2283324.n4.nabble.com/Memory-leak-tp4666300p4666407.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.