activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rob Davies <>
Subject Re: Producer flow control question
Date Sat, 18 Dec 2010 09:03:33 GMT
Would need to see how you've configured the infamous JMSTemplate - to see what the problem

On 17 Dec 2010, at 16:44, maarten.dirkse wrote:

> Hi,
> It's often said that producer flow control (PFC) is one of the most
> misunderstood features of ActiveMQ, and I couldn't agree more. After what
> I'd like to think was a pretty close read on the subject of the online docs,
> ActiveMQ in Action and the mailing list, I still can't figure out why my
> producer stalls indefinitely after PFC kicks in. And as the indefinite
> blocking of a producer is, as AMQ in Action says, "rather inefficient", I
> was wondering if someone could help me out.
> I have three components, lets call them A, B and C. My test is supposed to
> run like this: A produces roughly 11 million messages and puts them onto a
> topic (with a mem limit of 1mb). B listens to the topic and puts the
> messages on a queue, which is listened to by C which processes all incoming
> messages. B is somewhat slower than A, so I enabled producer flow control
> for topics. All messages are persistent (so enabling flow control for topics
> wasn't really necessary, I suppose).
> If I run the test with just component A, it works fine. PFC doesn't kick in,
> as there is no client listening to the topic. So far so good. If I then add
> B and C to the test, it runs until roughly 190,000 messages, at which point
> PFC kicks in, A is blocked, and the whole thing comes to a screeching halt.
> Just to be sure I enabled producerWindowSize and alwaysSyncSend on the
> connection (even though I shouldn't need to, as far as I understand, as the
> messages are persistent). That didn't help.
> So now I'm stuck as to why PFC has completely blocked my producer. As I
> understand it, the idea of PFC is to block the producer until there are
> sufficient resources to restart delivery. However, PFC does halt my
> producer, but doesn't start it up again, even when B and C have finished
> processing all their messages (and presumably freed up the necessary
> resources).
> What am I doing wrong? How do I get component A to start sending again?
> I'm running AMQ 5.4.2, Java 1.6 update 22, and the Spring (2.5.6)
> JMSTemplate and SimpleMessageContainer for sending/receiving.
> Thanks in advance,
> Maarten 
> -- 
> View this message in context:
> Sent from the ActiveMQ - User mailing list archive at

View raw message