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.

Reply via email to