This is just a guess...as I'm not an expert, but
reading the Message Bean life Cycle, i would guess the following:
The
EJB container starts MDBs instances and put them in a Pool. If in the pool there are multiple MDBs they can run
at the same time since as I understood it, each instance has its own thread.
If, as you specified, the pool only contains one Bean, I would expect the container to automatically initialize a new
bean and increase the pool.
If on the other hand, as in your case, all beans in the pool are busy (or only one bean is in the pool and the pool size is fixed),
i would expect that a new message is only processed when the MDB is finished with the previous one...
Dave