On 11/19/2012 10:42 AM, Gordon Sim wrote:
On 11/18/2012 02:45 PM, Matjaž Ostroveršnik wrote:
I've noticed that even if I run several clients (see below) in
parallel, only one is getting all the messages from the queue.
Expirementation with acknowledgements and capacity did not help.

What did you set the capacity to? If you set it to 0, does that not help?

After sending this I saw your queue configuration used shared message groups. The definition of that feature is that messages for the same group are dispatched such that they can be guaranteed to be processed in order. Specifically this means that while there are unacknowledged messages outstanding for that group, other message in the same group will be sent to the consumer to whom the outstanding messages were sent.

So, how are you using message groups? In your tests did you have messages from many different groups being sent?

My advice would still be to set capacity to 0 to void the batching that prefetch tends to lead to (which in small flows can appear as if one consumer gets everything); acknowledgements will also have an impact - if you acknowledge each message then the association between a group and a consume will have the shortest possible scope.

Note that these two configurations (capacity = 0 and acknowledgement on every message) will reduce the throughput per connection. However that may be less important than getting a smoother balancing between consumers.

If you have already tried that and it doesn't work, there would be something not behaving as expected. In that event can you include a complete example, or at least the details of the creation of the receiver and the pattern of sending messages?

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to