1 Reply Latest reply on May 30, 2014 8:10 AM by mnovak

    Strange behaviour with MDB failed with exception: 'Failed to acquire the pool semaphore, strictTimeout=10000'

    shashikanth86

      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.