set the prefetch=3 for your destination. see:
http://activemq.apache.org/what-is-the-prefetch-limit-for.html

On 18 March 2010 15:49, yair <y...@sundaysky.com> wrote:

>
> Hi all
> I have a job's queue, from which a worker receives messages to work on.
> Each time the worker decides to take a job (it can handle more than on the
> same time) it calls createQueueSession with transacted=true, creates a
> consumer, receives a message, and keep these 3 objects until the job's
> handling is over.
> If, while the job is handled (and the transacted session is still alive),
> the worker tries to get another message (by creating a new session and so
> on), it doesn't get any messages from the queue even if they are messages
> waiting beside the one it already handles. Even if another worker tries, it
> gets nothing.
> This means that the session and consumer the first worker creates, get some
> how a lock on the queue, and no other consumer can get messages from it.
>
> How can I fix this? I need to keep the session transacted because I want
> the
> message to be deleted from the queue only when the worker is done with it.
> If the worker crashes, for example, I need the message to return to the
> queue so other workers can handle it. This is working well now.
>
> Thanks,
> Yair
>
> --
> View this message in context:
> http://old.nabble.com/One-transacted-consumer-prevents-other-from-consuming-tp27947475p27947475.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
>


-- 
http://blog.garytully.com

Open Source Integration
http://fusesource.com

Reply via email to