I am using EJB MDB 3.0 and WAS 7 server in my Application. I have 7 MDBs, so there are 7 Queues and 7 Activation Specifications created on WAS Server. I have set the all the 7 Activation Specs maxPoolDepth to 6 and the Resource Adapter customer properties concurrentSession to 1 and the maxConnections to 10. The DataSource maxConnections is set to 60. The MDBs basically updating the Solid DB with the message details. Issue is when thousands of message are published in the Queues, the application is creating too many DB Connections (more than 60) causing the DB performance issues. So I think I need to throttle the number of message that are processed per second.
If I set the Activation Specs maxPoolDepth then do I need to create WorkManager and/or Scheduler on WAS Console, but I am not getting where I will configure the WorkManager and TimerManager in the application. As I only have ejb-jar-bnd.xml (to configure message-driven beans) and Spring bean config XML file. Also Do I need TimerManager as in this case? Or is there any other way we can control the message throttling by updating some annotations in the MDB itself?
Also, what is the difference between setting the maxPoolDepth property on Activation Spec and giving @ActivationConfigProperty(propertyName = "maxSession", propertyValue = "6") Annotation in the MDB itself?