Integrate AMQ into JBoss using the data source, and resource adapter. Create an outbound queue and an MDB with a pool size of 100. Dispatch several messages to the outbound queue, setting the JMSXGroupID property on the message to be the same value each time. In the MDB's onMessage method print out the MDBs toString (don't override toString) and you should see something that looks like:
Observe two things:
a) Many messages are processed in parallel
b) Many different values will occur after the @ in the above message, denoting that more than on MDB instance is being handed messages.
The correct behavior would be to dispatch messages with the same group id to the same MDB instance in sequence. This would allow messages from different groups to be processed in parallel, but messages in any one group would be processed serially, in the order in which they were placed into the queue.