On 9/29/06, HU <[EMAIL PROTECTED]> wrote:

Hi, James.

I think I found the guy who eat memory.

On the consumer thread side, it creates a session and a producer for
replying a message once received a message.

So first of all you should not create a session and producer for every
message...

http://incubator.apache.org/activemq/how-do-i-use-jms-efficiently.html

just use a single session & producer for sending all replies.


Although I explicitly closed the producer and the session after send the
respond message, the ActiveMQ seems do not clear the producerID and the
sessionID from the Object "org.apache.command",

There's no such package or class - do you mean
org.apache.activemq.command? If so thats a package, not a class so
doesn't help too much.

 so that the memory be used
slow up by those closed SessionIDs and ProducerIDs with other object
associates them.

Could you tell me how to release the SessionIDs and ProducerIDs.

I'd like to find out where the objects are being kept. AFAIK the main
place they are rept around is the Connection keeps a collection of
Session objects - which when the session is closed it removes. Could
you find out if the connection is keeping the session objects from
being GC'd?

I just added a try/finally to ActiveMQSession.java so that if the
close of the session fails, it wll definitely still get removed from
teh connection. - maybe that fixes your issue?
--

James
-------
http://radio.weblogs.com/0112098/

Reply via email to