I have an application that sends several JMS messages to a queue with one MDB that listens for messages on that queue. Under heavy loads (hundreds of messages being sent) I notice that the queue fills up. This is expected since the work associated with the MDB could take some time (the rate at which messages are processed is slower than the rate they are being added to the queue). CPU utilization is not at 100% when this is happening. I noticed that the InProcessMessageCount reaches 16 when this occurs and the QueueDepth begins to increase (and subsequently decreases once messages stop being sent). My questions are why the InProcessMessageCount always reaches 16, and if this value can be changed. I would think that this limit would be bounded by the resources of the machine it is running on, but it doesn't seem to be the case. It always stops at 16.
The MDB has 15 MaxSessions by default - see conf/standardjboss.xml
Add one for the "read-ahead" - the next message that will be processed once
one of the deliveries is complete and you get 16.