I've developed a stand-alone java application using OpenEJb embeddable and containing many MessageListeners listening to a queue hosted by a weblogic server.
After my application starts the weblogic admin console shows me my listeners correctly running on the queue.
This is my scenario:
20 messages sent to the queue.
Listener 1 start processing message 1
Listener 2 start processing message 2
Listener 3 start processing message 3
Listener 4 start processing message 4
Listener 1 ends THEN listener 5 start processing message 5
...
It seems like only 4 listeners can be active at once and the 5th needs to wait until some other listener ended its job.
The scenario I'd expect would be:
20 messages sent to the queue.
Listener 1 start processing message 1
Listener 2 start processing message 2
...
Listener 20 start processing message 20
My MessageListeners implement javax.jms.MessageListener and the whole work is performed in onMessage method.
I've tried to deploy a test pool of 20 MDB on my weblogic server and they read all 20 messages at the same time, as it should be.
This drives me to think it should not be a weblogic configuration issue.
Thank you for any help.