Recommendations for using and tuning the WMQJCAResourceAdapter.
Resolving the problem
The thread pool WMQJCAResourceAdapter is referenced by the WMQ resource adapter inbound delivery to MDB's. When WebSphere MQ resource adapter is used in conjunction with the activation specs, the resource adapter's Work Manager uses the values defined for the MQJCAResourceAdapter for utilizing the total number of threads defined.
If there is no thread pool configured in the server with this name, the default configured thread pool instance, named Default, is used. This property is only necessary if this resource adapter uses Work Manager.
The WorkManager is by default used when using Activation specifications.So configuring an Activation Spec will ensure that the WorkManager is used.
Ideally the default values provides for the WMQJCAResourceAdapter will be sufficient for the resource adapter. But in case there is an heavy load on the system processing huge number of messages, you can increase the maximum number of threads the thread pool can hold.
You need to size the thread pool so it can deal with the sustained through put of the server sessions. So, if you have 5 MDB's each with a pool size of 5 and you expect to have the pool fully utilized for all MDB's then that means you need to have 5*5 = 25 threads (Of course if you expect the server session pools to not be fully utilized, then you can reduce the size of your thread pool)
Each time an Activation Spec delivers a message to an MDB, this will use 1 thread from the WMQJCAResourceAdapter pool. For example, if there is one Activation Spec (with a max of 10 server sessions) the maximum number of threads required from the WMQJCAResourceAdapter pool will also be 10. The WMQJCAResourceAdapter pool should be set to a value which is the sum of the maximum number of server sessions specified for all of the Activation Specs (e.g. 5 Activation Specs, each with a max of 10 server sessions...meaning that a pool size of 50 is required)