activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joe Niski <joe.ni...@NWEA.org>
Subject Re: producer flow control and message cursors
Date Fri, 01 Oct 2010 22:13:44 GMT
Well, i may have spoken too soon. Tests with a queue's destination policy configured like this:

                    <policyEntry queue=">" producerFlowControl="true" memoryLimit="64mb">
                        <pendingQueuePolicy>
                            <fileQueueCursor/>
                        </pendingQueuePolicy>
                    </policyEntry>

indicate that the pendingQueuePolicy is ignored if producerFlowControl is enabled. The same
test (sending 10,000 messages to a queue that has no consumers) locks up at the same message
count, regardless of whether there's a pendingQueuePolicy or not, with this error in the log:
2010-10-01 09:39:51,081 | INFO  | Kaha Store using data directory /opt/activemq/data/localhost/tmp_storage
| org.apache.activemq.kaha.impl.KahaStore | default:memory:queue://inbound.tt2etl.q:memory
Usage Thread Pool
2010-10-01 09:41:04,855 | INFO  | Usage Manager memory limit reached on queue://inbound.tt2etl.q.
Producers will be throttled to the rate at which messages are removed from this destination
to prevent flooding it. See http://activemq.apache.org/producer-flow-control.html for more
info | org.apache.activemq.broker.region.Queue | ActiveMQ Transport: tcp:///192.168.22.78:52741

Setting producerFlowControl="false" changes the behavior - messages continue to be accepted
by the queue, until a consumer starts or AMQ actually runs out of heap and the producer's
connection is broken.

Joe Niski
IS Development |  NWEA

PHONE 503.212.3382  |  FAX 503.639.7873

NWEA.ORG<3D%22http://www.nwea.org/%22>  |  Partnering to Help All Kids Learn

On 09/29/2010 09:08 AM, Joe Niski wrote:

Thanks for the clarification, Dejan.

*Joe Niski
*IS Development |  NWEA

PHONE 503.212.3382  | FAX 503.639.7873

NWEA.ORG <3D%22http://www.nwea.org/%22> ** | Partnering to Help All Kids
Learn


On 09/29/2010 01:29 AM, Dejan Bosanac wrote:
> No, producer flow control is on by default with store based cursor and
> it will block producers when queue limits are hit. You can
> additionally configure it so that send() method of the producer will
> throw an exception in that case.
>
> 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 Tue, Sep 28, 2010 at 7:43 PM, Joe Niski <joe.niski@nwea.org><mailto:joe.niski@nwea.org>
wrote:
> > But using the default store-based cursor requires disabling Producer
> Flow Control, correct?



Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message