Thank you Carlo.
I also see a strange behaviour in processing the messages. My onMessage() Method does a sleep(2*1000) for testing the load case. When I send a few messages, it first starts to create new instances which are processing more and more messages in parallel.
But when 5 MDB Instances are started, only a single worker thread keeps processing messages:
Here you see a test, 1 message, then 2 messages with 2s pause, and then 2 quick messages: The system correctly initiizes one instance for the first 3 messages and another one for the next two messages in parallel:
02:31:25,090 INFO [org.jboss.as.server.controller] (DeploymentScanner-threads - 2) Deployed "net.eckenfels.as7example.e
jb3mdb.ejbjar.ejb3mdb.jar-0.0.1-SNAPSHOT.jar"
02:31:25,090 INFO [org.jboss.as.server.controller] (DeploymentScanner-threads - 2) Deployed "EJB3MDBWeb.war"
02:31:39,949 INFO [stdout] (http-localhost-127.0.0.1-8080-1) Sent JMS Message ID=ID:93516c9d-e18d-11e0-90c2-080027008c43
02:31:39,980 INFO [EJB3MDB] (Thread-0 (group:HornetQ-client-global-threads-3178554)) EJB3MDB.initialize(): done.
02:31:39,980 INFO [stdout] (Thread-0 (group:HornetQ-client-global-threads-3178554)) onMessage() START ID:93516c9d-e18d-11e0-90c2-080027008c43
02:31:41,980 INFO [stdout] (Thread-0 (group:HornetQ-client-global-threads-3178554)) onMessage() DONE ID:93516c9d-e18d-11e0-90c2-080027008c43
02:31:46,434 INFO [stdout] (http-localhost-127.0.0.1-8080-1) Sent JMS Message ID=ID:97313ede-e18d-11e0-90c2-080027008c43
02:31:46,434 INFO [stdout] (Thread-2 (group:HornetQ-client-global-threads-3178554)) onMessage() START ID:97313ede-e18d-11e0-90c2-080027008c43
02:31:48,434 INFO [stdout] (Thread-2 (group:HornetQ-client-global-threads-3178554)) onMessage() DONE ID:97313ede-e18d-11e0-90c2-080027008c43
02:31:55,574 INFO [stdout] (http-localhost-127.0.0.1-8080-1) Sent JMS Message ID=ID:9ca19c2f-e18d-11e0-90c2-080027008c43
02:31:55,574 INFO [stdout] (Thread-0 (group:HornetQ-client-global-threads-3178554)) onMessage() START ID:9ca19c2f-e18d-11e0-90c2-080027008c43
02:31:55,934 INFO [stdout] (http-localhost-127.0.0.1-8080-1) Sent JMS Message ID=ID:9cdad4a0-e18d-11e0-90c2-080027008c43
02:31:55,949 INFO [EJB3MDB] (Thread-1 (group:HornetQ-client-global-threads-3178554)) EJB3MDB.initialize(): done.
02:31:55,949 INFO [stdout] (Thread-1 (group:HornetQ-client-global-threads-3178554)) onMessage() START ID:9cdad4a0-e18d-11e0-90c2-080027008c43
02:31:57,574 INFO [stdout] (Thread-0 (group:HornetQ-client-global-threads-3178554)) onMessage() DONE ID:9ca19c2f-e18d-11e0-90c2-080027008c43
02:31:57,949 INFO [stdout] (Thread-1 (group:HornetQ-client-global-threads-3178554)) onMessage() DONE ID:9cdad4a0-e18d-11e0-90c2-080027008c43
This repeats till 5 instances are started. When I then keep generating messages it suddenly degenerates and only a single worker is processing the messages (slowly):
02:36:47,734 INFO [stdout] (Thread-6 (group:HornetQ-client-global-threads-3178554)) onMessage() START ID:4ac7fa2a-e18e-11e0-90c2-080027008c43
02:36:48,047 INFO [stdout] (Thread-1 (group:HornetQ-client-global-threads-3178554)) onMessage() START ID:4af7bcbb-e18e-11e0-90c2-080027008c43
02:36:48,047 INFO [stdout] (http-localhost-127.0.0.1-8080-1) Sent JMS Message ID=ID:4af7bcbb-e18e-11e0-90c2-080027008c43
02:36:48,359 INFO [stdout] (http-localhost-127.0.0.1-8080-1) Sent JMS Message ID=ID:4b250e4c-e18e-11e0-90c2-080027008c43
02:36:48,625 INFO [stdout] (http-localhost-127.0.0.1-8080-1) Sent JMS Message ID=ID:4b4d7ddd-e18e-11e0-90c2-080027008c43
02:36:48,891 INFO [stdout] (http-localhost-127.0.0.1-8080-1) Sent JMS Message ID=ID:4b78857e-e18e-11e0-90c2-080027008c43
02:36:49,734 INFO [stdout] (Thread-6 (group:HornetQ-client-global-threads-3178554)) onMessage() DONE ID:4ac7fa2a-e18e-11e0-90c2-080027008c43
02:36:50,047 INFO [stdout] (Thread-1 (group:HornetQ-client-global-threads-3178554)) onMessage() DONE ID:4af7bcbb-e18e-11e0-90c2-080027008c43
02:36:50,063 INFO [stdout] (Thread-1 (group:HornetQ-client-global-threads-3178554)) onMessage() START ID:4b250e4c-e18e-11e0-90c2-080027008c43
02:36:52,063 INFO [stdout] (Thread-1 (group:HornetQ-client-global-threads-3178554)) onMessage() DONE ID:4b250e4c-e18e-11e0-90c2-080027008c43
02:36:52,063 INFO [stdout] (Thread-1 (group:HornetQ-client-global-threads-3178554)) onMessage() START ID:4b4d7ddd-e18e-11e0-90c2-080027008c43
02:36:54,063 INFO [stdout] (Thread-1 (group:HornetQ-client-global-threads-3178554)) onMessage() DONE ID:4b4d7ddd-e18e-11e0-90c2-080027008c43
02:36:54,078 INFO [stdout] (Thread-1 (group:HornetQ-client-global-threads-3178554)) onMessage() START ID:4b78857e-e18e-11e0-90c2-080027008c43
02:36:56,078 INFO [stdout] (Thread-1 (group:HornetQ-client-global-threads-3178554)) onMessage() DONE ID:4b78857e-e18e-11e0-90c2-080027008c43
Any idea how to furhter debug this? In the thread dump I see the idle worker threads in the normal "unsafe park" where they are waiting to be triggered. Next on my Agenda is to try it with a 7.1 snapshot.