You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Josip Gracin <jo...@gmail.com> on 2008/11/03 13:24:57 UTC

Serious problem with persistent messages and flow control... producers block, reproducibly

Hi!

We're having serious issues with ActiveMQ 5.1.0 (and 5.2.0) and flow
control.  If we're using persistent messages, once a producer gets blocked
in waitForSpace() (due to consumer being too slow or turned off), it is
impossible to unblock it except by completely restarting it.  It just waits
indefinitely and never leaves waitForSpace() (determined by jconsole).

We've tried this on some Linux machines and on a MacOS X machine.

Could somebody please confirm that the following scenario works:
1. start consumer
2. start producer (producer generates an infinite stream of messages)
3. stop consumer
4. wait until the producer stops due to flow control
(at this point, our producer ends up in waitForSpace() and it never resumes)
5. start consumer
6. see that producer resumes
7. repeat steps 3-6 a couple of times to make sure it works.

If we use non-persistent messages, everything works as expected, i.e.
producers normally resume as soon as consumer starts consuming from the
queue.

-- 
View this message in context: http://www.nabble.com/Serious-problem-with-persistent-messages-and-flow-control...-producers-block%2C-reproducibly-tp20301738p20301738.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.


Re: Serious problem with persistent messages and flow control... producers block, reproducibly

Posted by Rob Davies <ra...@gmail.com>.
could you produce a junit test case for this - and submit it with a  
jira ?

On 3 Nov 2008, at 12:24, Josip Gracin wrote:

>
> Hi!
>
> We're having serious issues with ActiveMQ 5.1.0 (and 5.2.0) and flow
> control.  If we're using persistent messages, once a producer gets  
> blocked
> in waitForSpace() (due to consumer being too slow or turned off), it  
> is
> impossible to unblock it except by completely restarting it.  It  
> just waits
> indefinitely and never leaves waitForSpace() (determined by jconsole).
>
> We've tried this on some Linux machines and on a MacOS X machine.
>
> Could somebody please confirm that the following scenario works:
> 1. start consumer
> 2. start producer (producer generates an infinite stream of messages)
> 3. stop consumer
> 4. wait until the producer stops due to flow control
> (at this point, our producer ends up in waitForSpace() and it never  
> resumes)
> 5. start consumer
> 6. see that producer resumes
> 7. repeat steps 3-6 a couple of times to make sure it works.
>
> If we use non-persistent messages, everything works as expected, i.e.
> producers normally resume as soon as consumer starts consuming from  
> the
> queue.
>
> -- 
> View this message in context: http://www.nabble.com/Serious-problem-with-persistent-messages-and-flow-control...-producers-block%2C-reproducibly-tp20301738p20301738.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>