and the singleton MDB would solve my problem?
I doubt it, if you don't know yourself.
You know better than us what you are tring to achieve.
An MDB is something that takes a single message and does something with it.
Any correlation across multiple messages you have to write yourself.
This includes any error recovery, e.g. what happens if messages
7,8,9,10 never got sent
MDB's are designed for asynchronous + decoupled + parallel message processing !!!
If your special use case does not fit into this scenario DO NOT abuse MDB's for something they are not designed for ! Even for a singleton MDB there is no guarantee for ordered (re-)delivery of messages and - even more worse- your application will not scale at all !
Rethink your application needs ! If you have to process multiple messages at once, put them all into one message instead of using separate messages. If this is not possible you might have to use a different application pattern (e.g. session\entity beans )