You've set the destination property consumerFlowLimit for your topic "preprocessedQ" to 100.
The connection factory property imqConsumerFlowLimit is still its default value, which is 1000.
These are separate properties which can hold different values. The former only applies to a specific destination whereas the latter could apply to any destination.
However according to the documentation, where this connection is used to consume messages from this particular former destination, the lower of the two values will be used:
The documentation for the connection factory property imqConsumerFlowLimit states:
(
http://docs.sun.com/app/docs/doc/820-6740/aeooh?l=en&a=view)
"This limit can be overridden by a lower value set for a queue’s own consumerFlowLimit attribute"
Conversely, the documentation for the destination property consumerFlowLimit states:
(
http://docs.sun.com/app/docs/doc/820-6740/aeooc?l=en&a=view )
"The client runtime can override this limit by specifying a lower value on the connection factory object.. "
So it sounds as if the lower value "wins".
However this doesn't explain why you don't get the load balancing you expect (which as my blog entry describes is determined by several properties together with the throughput of the indibvidual MDBs).
Have you tried even lower values of consumerFlowLimit, if only to confirm that changing it having an effect?
Nigel
[Message sent by forum member 'nigeldeakin' (nigeldeakin)]
http://forums.java.net/jive/thread.jspa?messageID=359421