1 of 1 people found this helpful
The number of MDB instances is only part of the equation here. You also have to deal with the session pool size used by the HornetQ JCA RA (which defaults to 15). To configure this use the "maxSession" activation configuration property on your MDB.
Remember, whichever value is lower (either the MDB instance pool size or the JCA RA session pool size) will determine the maximum concurrency of message processing for a particular MDB.
My reciever and despatcher are running as singletons but the runner is only using 15 threads. I reduced the mdb-strict-max-pool to 10 just to see if this was effecting me but I still got 15
The way I understand it, this shouldn't happen. Do you have a test-case I can use to reproduce this?
How do I do this using the descriptor all the examples I can find use annotations to do this.
do I need to use ejb.xml or jboss-ejb3.xml or both ?
Activation configuration properties are standard Java EE. You can use either ejb-jar.xml or jboss-ejb3.xml to configure them.
Thanks for your help I have edited jboss-ejb3.xml
<message-driven> <ejb-name>TaskRunnerMEJB</ejb-name> <activation-config> <activation-config-property> <activation-config-property-name>destination</activation-config-property-name> <activation-config-property-value>java:/jms/cp/taskRunnerQueue</activation-config-property-value> </activation-config-property> <activation-config-property> <activation-config-property-name>maxSession</activation-config-property-name> <activation-config-property-value>100</activation-config-property-value> </activation-config-property> </activation-config>
And it seems to be working as I expect