Hi Dejan, tnx for the reply. This is in short the configuration I used for the tests, that is the ActiveMq default one with producerFlowControl disabled :
<policyEntry queue=">" producerFlowControl="false" memoryLimit="50mb"> </policyEntry> I tried with the vmQueueCursor and fileQueueCursor too, to see what happen, but the result of pending messages increase is the same : the amount of memory occupied by the broker grows until it reached the jvm limit. Also the memoryLimit attribute on policyEntry doesn't seem change this behaviour. I suspect it is used only with producerFlowControl check. Dejan Bosanac wrote: > > You can also check you memory limits on the queue and see how much of > it has been used, and perhaps tune that a bit. > > Cheers > -- > Dejan Bosanac - http://twitter.com/dejanb > > Open Source Integration - http://fusesource.com/ > ActiveMQ in Action - http://www.manning.com/snyder/ > Blog - http://www.nighttale.net > > > > On Thu, Jul 8, 2010 at 3:21 PM, Dejan Bosanac <de...@nighttale.net> wrote: >> Hi Chris, >> >> Do you by any chance use VM Cursor in your config? >> >> Please take a look at this page for more details: >> http://activemq.apache.org/message-cursors.html >> >> It'd be good if you could post you configuration, so we can see check it >> out. >> >> Cheers >> -- >> Dejan Bosanac - http://twitter.com/dejanb >> >> Open Source Integration - http://fusesource.com/ >> ActiveMQ in Action - http://www.manning.com/snyder/ >> Blog - http://www.nighttale.net >> >> >> >> On Thu, Jul 8, 2010 at 2:51 PM, cmongillo <cmongi...@giocodigitale.it> >> wrote: >>> >>> Hi, >>> we are performing some tests on our ActiveMq instance (version 5.3.0) >>> and we >>> noticed a memory increase when our persistent queues become quite full >>> of >>> pending messages. >>> The result of slow consumers with producerFlowControl disabled is a >>> constant >>> increase of the memory with the number of pending messages. >>> Analyzing a memory dump in this scenario we noticed that the object >>> org.apache.activemq.broker.region.Queue related to our full queue has a >>> reference to all pending messages. >>> Each org.apache.activemq.broker.region.IndirectMessageReference object >>> linked to queue contains a reference to the original >>> org.apache.activemq.command.ActiveMQTextMessage object with all content >>> (jms >>> message body). >>> What is the reason of caching all the pending object when we work with >>> persistent messages? >>> There is an option we can set to avoid this behaviour? >>> >>> >>> -- >>> View this message in context: >>> http://old.nabble.com/Persistent-messages-cache-causes-OutOfMemory-tp29106666p29106666.html >>> Sent from the ActiveMQ - User mailing list archive at Nabble.com. >>> >>> >> > > > ----- > Dejan Bosanac > > Open Source Integration - http://fusesource.com/ > ActiveMQ in Action - http://www.manning.com/snyder/ > Blog - http://www.nighttale.net > -- View this message in context: http://old.nabble.com/Persistent-messages-cache-causes-OutOfMemory-tp29106666p29107409.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.