activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From SledgeHammer <>
Subject Memory leak??
Date Fri, 26 Apr 2013 23:32:59 GMT
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

* 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
_strServer, _nPort));

server is localhost, port = 25055

IDestination destination = SessionUtil.GetTopic(session,

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
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 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:
Sent from the ActiveMQ - User mailing list archive at

View raw message