Basic issue is that on first run, everything works perfectly... on 2nd run, the consumer hangs responding to the producer (producer created temp queue). NOTE: I kill the producer in the middle to test recovery...
Will give you a brief summary at first so I don't overload you with info lol... * OS: Windows 7 64bit * ActiveMQ: 5.8.0 * Broker is pretty stock. I have changed the port #. I have enabled GC of inactive queues. My queue XML tag is: <policyEntry queue=">" producerFlowControl="false" gcInactiveDestinations="true" inactiveTimoutBeforeGC="5000"> *1 broker, 1 producer & 1 consumer at this time. All 3 components are running on the same windows 7 machine * messages are byte messages, typically 1MB to 2MB, message takes client approx. 8 seconds to process. * As discussed in a previous thread, my boss wanted a round-robin type implementation so all producers could get messages handled in a reasonable time. You guys recommended each producer create its own queue and I round-robin on those... Flow on the consumer side is: 1) Basic abbreviated start up: Uri connectUri = new Uri(String.Format("activemq:tcp://{0}:{1}?wireFormat.tightEncodingEnabled=true&nms.PrefetchPolicy.QueuePrefetch=1", _strServer, _nPort)); server is localhost, port = 25055 IDestination destination = SessionUtil.GetTopic(session, "ActiveMQ.Advisory.Queue"); using (IMessageConsumer consumer = session.CreateConsumer(destination)) { // use listener version // wait on handle forever } 2) in the advisory listener, the basic flow is: if (destInfo.IsAddOperation) { create consumer for new queue create consumer for queue producer notifications } else { unsub both consumers close both consumers dispose both consumers } 3) in the producer advisory listener, the basic flow is: if its a remove info, I unsub both consumers, close them and dispose them then I do a _session.DeleteQueue(); this all works properly to detect a brute force close on the producer and the queue is deleted as expected. If I run the producer again, the consumer gets a new advisory that a new queue has been created and it subs the 2 consumers, etc. When it goes to reply to the producer via the temp queue the producer created, producer.Send() "hangs"... in the log I get: INFO | jvm 1 | 2013/04/26 16:14:34 | INFO | Usage Manager Memory Limit (67108864) reached on temp-queue://ID:xxxQ24-046485-49115-635025896442413777-1:0:1. Producers will be throttled to the rate at which messages are removed from this destination to prevent flooding it. See http://activemq.apache.org/producer-flow-control.html for more info this queue is empty at this time and the machine has 8GB of RAM... not sure whats going on... as stated above... flow control is OFF. -- View this message in context: http://activemq.2283324.n4.nabble.com/Memory-leak-tp4666300.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.