On Mon, Nov 24, 2008 at 7:37 AM, Frugia, Kirby A <[EMAIL PROTECTED]> wrote: > Hi All, > > Sorry I dual-posted in the dev list. I think I sent to the wrong one... > > We are seeing an issue with our broker not releasing memory on topics. > > Setup: > * Active MQ 5.1 (out of the box) > * Persistent messages sent by publishers > * Non-durable topics > > We were seeing an issue in production with slow consumers causing the broker > to run out of memory. > > We wrote a test app, which has one publisher and one subscriber to the same > topic. The publisher sends messages on this topic frequently. The > subscriber, upon receiving a message, goes to sleep for 10 minutes. > > Very quickly, the broker runs out of memory. When this happens, our > publishers can no longer send messages; the send is blocked. This is > expected. However, if we kill our application (which cleanly disconnects > from the broker), the broker's memory usage (MemoryPercentUsage) does not go > back down. Also, any new apps that startup will have their publishers > blocked. > > Shouldn't the broker release the memory associated with these messages?
The first thing to do is configure the prefetch buffer for the client?: http://activemq.apache.org/what-is-the-prefetch-limit-for.html See how that affects the situation. If you're still experiencing issues, you might need to consider using a different message cursor strategy: http://activemq.apache.org/message-cursors.html Bruce -- perl -e 'print unpack("u30","D0G)[EMAIL PROTECTED]&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*" );' Apache ActiveMQ - http://activemq.org/ Apache Camel - http://activemq.org/camel/ Apache ServiceMix - http://servicemix.org/ Blog: http://bruceblog.org/