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]