You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Saurabh Bhatia <ar...@gmail.com> on 2020/04/24 12:43:30 UTC

ActiveMQ getting blocked once memory is 100 % used

I have 2 queues setup in ActiveMQ broker. Wanted to test that producer flow
control is working and producers for both queue are getting stalled when
there is no memory. As soon as event occurs, messages start getting enqueued
in both queues, but everything stops after memory reaches 100%(sometimes it
is more than 100 % also, don't know how is that possible for persistent
messages). Memory never reduces from 100 % so that producers can again start
putting messages in both queues.

<policyEntry queue=">" memoryLimit="1000MB" producerFlowControl="true"/>
    <systemUsage>
                <systemUsage>
                    <memoryUsage>
                        <memoryUsage percentOfJvmHeap="70" />
                    </memoryUsage>
                    <storeUsage>
                        <storeUsage limit="50MB"/>
                    </storeUsage>
                    <tempUsage>
                        <tempUsage limit="50MB"/>
                    </tempUsage>
                </systemUsage>
            </systemUsage>


<http://activemq.2283324.n4.nabble.com/file/t379908/QTJBy.png> 

Is there something wrong with configuration? I want to slow down producer
when memory is full(basically stop to enqueue) and again start when memory
is free. Why is memory not getting free? Is there a way to slow down
producer queuing even before memory is full if there are enough items on
queue already to deque?



--
Sent from: http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html

Re: ActiveMQ getting blocked once memory is 100 % used

Posted by Justin Bertram <jb...@apache.org>.
Do you have consumers? If not then memory usage will never decrease. If so,
then they need to be *faster* than the producers in order to reduce memory
usage otherwise the producers will send new messages as soon as any
messages are consumed effectively keeping you at 100% usage.


Justin

On Fri, Apr 24, 2020 at 10:21 AM Saurabh Bhatia <ar...@gmail.com>
wrote:

> I have 2 queues setup in ActiveMQ broker. Wanted to test that producer flow
> control is working and producers for both queue are getting stalled when
> there is no memory. As soon as event occurs, messages start getting
> enqueued
> in both queues, but everything stops after memory reaches 100%(sometimes it
> is more than 100 % also, don't know how is that possible for persistent
> messages). Memory never reduces from 100 % so that producers can again
> start
> putting messages in both queues.
>
> <policyEntry queue=">" memoryLimit="1000MB" producerFlowControl="true"/>
>     <systemUsage>
>                 <systemUsage>
>                     <memoryUsage>
>                         <memoryUsage percentOfJvmHeap="70" />
>                     </memoryUsage>
>                     <storeUsage>
>                         <storeUsage limit="50MB"/>
>                     </storeUsage>
>                     <tempUsage>
>                         <tempUsage limit="50MB"/>
>                     </tempUsage>
>                 </systemUsage>
>             </systemUsage>
>
>
> <http://activemq.2283324.n4.nabble.com/file/t379908/QTJBy.png>
>
> Is there something wrong with configuration? I want to slow down producer
> when memory is full(basically stop to enqueue) and again start when memory
> is free. Why is memory not getting free? Is there a way to slow down
> producer queuing even before memory is full if there are enough items on
> queue already to deque?
>
>
>
> --
> Sent from:
> http://activemq.2283324.n4.nabble.com/ActiveMQ-User-f2341805.html
>
>