0

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.

seph
  • 118
  • 1
  • 5
  • Have you looked at this question? http://stackoverflow.com/questions/20298969/concurrent-processing-of-jms-message-listener-weblogic It's probably as simple as 'you don't have enough threads/listener objects' – Display Name is missing Jun 22 '14 at 15:16
  • I don't think this may be my case because when my application starts 20 listeners are instantiated. In facts onMessage method of my 5th listener is triggered only when the first one listener ends its processing. That's why I suppose all listeners are actually running when all messages are sent. – seph Jun 22 '14 at 19:52

0 Answers0