ActiveMQ version 5.11.3
No producer flow control.

<policyEntry queue=">" timeBeforeDispatchStarts="5000"
producerFlowControl="false" maxPageSize="1000" useCache="true"
 expireMessagesPeriod="0" optimizedDispatch="true">
                   <dispatchPolicy>
                      <roundRobinDispatchPolicy />
                    </dispatchPolicy>
                  <messageGroupMapFactory>
                    <simpleMessageGroupMapFactory/>
                  </messageGroupMapFactory>
                  <pendingMessageLimitStrategy>
                    <constantPendingMessageLimitStrategy limit="-1"/>
                  </pendingMessageLimitStrategy>
                </policyEntry>


I've noticed the following issue:

- Consumers are consuming at a consistent rate.
- Producer starts sending burst of messages
- Queue starts growing
- Once queue depth is around 400K+, ActiveMQ stops delivering messages to
the consumers.
- Eventually, Memory usage reaches to 100%, and it starts impacting other
queues, and producers/consumers.

To come out of this situation, I enable consumers to drop certain kind of
messages (to trigger faster consumption).
After this change, ActiveMQ starts delivering messages, and queue gets
drained.

Looks like to me, ActiveMQ detects the slow consumers for a growing queue,
and stops delivering messages.
Is it possible to configure ActiveMQ to deliver to all the consumers at
an equal rate? i.e. do not smartly balance based on the consumption rate?
Trying to avoid the system freeze.

Reply via email to