Maybe it's a little bit late to join the conversation, but better late than never. :)
The thing is that the message group idea only solves the problem if we want to limit the
consumers to only one (1). If we want to have, let's say, max 3 consumers, then the
message group idea is no longer useful.
For example: Let say that some operation or process needs (or occupies) 1 core in the
processor to complete. Let say that we have a quad core processor (4 cores) in our server.
We want to save one core for other operations. That leaves us to 3 cores to run 3
simultaneous processes. In this scenario it would be great to limit the consumers to 3.
Maybe through an attribute in the settings-file for the specific queue and/or even set the
limitation programatically.
Of course, we could create a singleton pool with mutex- or semafore-technology in each
consumer to control the number of simultaneous processes. But this would (could) lead to
transaction timeouts if the wait is too long between the first and last loaded consumer,
which could fail the whole idea with QoS.
timfox: In your blog, you have described nicely the consumer flow control between the
queue and the consumer:
http://jbossfox.blogspot.com/2008/03/mysteries-of-flow-control-explained....
Is there a way, in the configuration or JMX bean, to control the number of tokens in the
consumer flow control? If there are, I would really like to know how to manipulate them.
That would really solve my problem. If not, is there a plan to make them visible in future
versions of JBoss Messaging?
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4152170#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...