I'm having some trouble with transactions. The problem is multiple consumers
block each other if they spend a long time in a transaction.

What I'm looking to do is send several hundred jobs into a queue. Each job
takes somewhere between a few seconds and 30 minutes to run. Each consumer
reads a job from the queue, processes it, writes the result back to the
queue then commits the transactions. If any problems happen in between it
should rollback and someone else should try the job. Each consumer runs in
it's own VM. It doesn't matter what order the jobs are processed in.

The problem is if one consumer receives a message and starts to process it
all the other consumer block on the receive call until the first one has
done a commit or rollback. This happens even though there are plenty of
messages in the queue. Is there a way around this?

Thanks.
-- 
View this message in context: 
http://www.nabble.com/Blocking-transactions-tf4378065s2354.html#a12479372
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to