I started 2 servers, each of which have an embedded broker. A shell based chield sends messages to 30 different message groups (using command "register <message group>" in the samepl app provided. Only 2 mesages are received by server1, 3 by server2 and 25 by server3. The load balancing distribution is highly unenen.
As suggested, I also tried setting a low destination queue prefetch value (consumer.prefetch=1) but the result was the same.
To run sample :
1. Unzip attached file and run "maven.bat" from the oot directory (Maven 1.0)
2. Open 3 DOS boxes in the dist\bin folder and run "startoptimizerPooled.bat", "startOptimizerPooled2.bat" and "startOptimizerPooled3.bat" in each DOS box respectively.
3. Step 2 starts a network of 3 servers apps which have an embedded broker. The Spring configuration files for each of these servers is in the dist\conf directory.
4. Open another DOS box in dist\bin and start a test client by running "startClientShell.bat"
5. This command driver test client accepts commads in the form
"register <message group>"
"close <message group>"
NOTE: The command "close <message group>" is supposed to close/reset the message group by issueing a "JMSXGroupSeq" header as described here : http://www.activemq.org/site/message-groups.html
6. Try sending several messages to the server by issuing several commands like "regeister A", "register B", "register C" and so on.. You'll see the highly uneven distibution of messages. Only one or two messages are received my 2 servers while the third one receives a majority of the messages.
Please let me know if you have trouble running the sample or replicating the issue.