Ok I have performed a simple test.
I deployed an MDB that just sleeps for 24 hours when it receives a message.
I deployed that MDB in JBAS 4.2.0 consuming from queue queue/testQueue
I then wrote a simple client program that sent 2000 messages to testQueue.
I think waited 2 seconds before immediately browsing that queue and counting the
messages.
Results were that 1834 messages left in the queue.
I am using all the default settings in JBAS and JBM.
If you consider that default prefetch size is 150, and the default MDB container will
instantiate 15 MDB instances, each with a message buffer of 1 (also configurable).
Then I would expect 150 + 15 * 1 + 1 = 166 messages to not be in the queue (the last one
is the one we actually consumed before sleeping).
Note that 2000 - 166 = 1834 *exactly*. So we have exactly accounted for the all the
messages.
As I said before if you want to reduce the amount that are buffered you can reduce the
prefetchSize, but be wary of any performance implications.
You could also reduce the MDB pool size to less than 15.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4049837#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...