Hi All,
We are facing a strange Behavior with MDB time out. Here is the scenario
- We have 2 MDB say MDB1 , MDB2
- When i submit the message the message to MDB1 then MDB1 will process the message and put the message to MDB2 .
- Ideally the processing of each message either in MDB1 or MDB2 should be less than a sec
Scenario 1,
- I submitted 500 message for MDB1 .
- MDB 1 will process each message and put the message to MDB2
- MDB2 will process the message without any error
- So we have no problem when we submit 500 message to the queue.
Scenario 2
- I have submitted 900 message for MDB1.
- MDB 1 will process each message and put the message to MDB2
- MDB2 will process around 500 to 600 message and throws the exception as below
(WorkManager(2)-6) --------------> Exception Logger entry com.ibm.mq.connector.outbound.ManagedQueueConnectionFactoryImpl.CentralLogConnFactory Mon Feb 03 20:48:07 CST 2014 INFO--------------- MQJCA4004:Message delivery to an MDB 'jboss.j2ee:ear=SAMPLEEAR.ear,jar=MDB2.jar,name=MDB2,service=EJB3' failed with exception: 'Failed to acquire the pool semaphore, strictTimeout=10000'.
- Once we get this error MDB2 will never pick up any message and keep on getting the same error. We need to stop the server and start again.
Configuration used
- jboss-eap-5.1
- IBM MQ 7.5.0.2
- MDB configuration in ejb3-interceptors-aop.xml
<annotation expr="class(*) AND !class(@org.jboss.ejb3.annotation.Pool)"> @org.jboss.ejb3.annotation.Pool (value="StrictMaxPool", maxSize=1, timeout=10000) </annotation>
- Max connection used is 150 in ra.xml inside wmq.jmsra.rar
Can some one help me.