4 Replies Latest reply on Apr 27, 2017 9:11 AM by speedco

    Unexpected behaviour with JBoss 6.3 and WebSphere MQ 8.0 Adapter

    speedco

      Good morning, can anyone help me?

       

      I'm working for a client that has JBoss EAP 6.3 implemented, communicating with MQ 8.0 using the MQ Resource Adapter. MDB's are configured:

       

      @ResourceAdapter("wmq.jmsra.rar")
      @DependsOn("stc.instation:service=SystemStartUpTime")
      @MessageDriven(name = "ConnectedPartyTca1Listener", activationConfig = {
              @ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
              @ActivationConfigProperty(propertyName = "destination", propertyValue = "QL.CPARTIES_TCA1"),
              @ActivationConfigProperty(propertyName = "useJNDI", propertyValue = "false"),
              @ActivationConfigProperty(propertyName = "hostName", propertyValue = "${cp.hostName}"),
              @ActivationConfigProperty(propertyName = "queueManager", propertyValue = "${cp.queueManager}"),        
              @ActivationConfigProperty(propertyName = "port", propertyValue = "${cp.port}"),
              @ActivationConfigProperty(propertyName = "channel", propertyValue = "${cp.tca1.channel}"),        
              @ActivationConfigProperty(propertyName = "maxPoolDepth", propertyValue = "${cp.tca1.maxPoolDepth}")})
      

       

      Where maxPoolDepth is set to limit the number maximum number of MDB's that are started by the thread pool. (EDIT: Where we default maxPoolDepth to 15)

       

      What we observe when the system is running is this:

       

      • MQ Reports there are 16 open consumers in the MQ Client window, not 15 as expected
      • Logging inside the EJB's show that 15 of them execute correctly and the unexpected 16th also tries to run, but is triggering a JMSCC0108 error, i.e. the browsed with mark message from MQ is not allocated (or has been correctly timed out)

       

      Is this normal behaivour? For each MDB, we always get "+1" MDB's in the JBoss container and connected to MQ (client window), when there are enough messages on the queue and threads are available.

       

      My client needs certainty of the number of MDB's running, due to their logic design.

       

      Is there a setting or advice we should consider?

       

      One small extra piece of information is the fact the client is currently using the MQ Resource Adapter 7.0.1.12-k701-112-140319. I've been informed that they tried v8 of the adapter, but things went horribly wrong (I've yet to find out what/why). Could this be the cause?

       

      Any help would be REALLY appreciated.

       

      Kind regards

       

      Carl

        • 1. Re: Unexpected behaviour with JBoss 6.3 and WebSphere MQ 8.0 Adapter
          pjhavariotis

          Regarding the version of the WMQ Resource adapter, you have to know that with JBoss EAP 6, you can only use a JMS 1.1 compatible one.

          I would recommend to use the WebSphere MQ Resource Adapter v7.5.

          The IBM MQ Resource Adapter v8.0 and v9.0 are JMS 2.0 compliant and can be utilized on JBoss EAP 7!

          You can find more on this subject on the following techdoc: IBM Obtaining the IBM MQ Resource Adapter for the WebSphere Application Server Liberty Profile - United States

          • 2. Re: Unexpected behaviour with JBoss 6.3 and WebSphere MQ 8.0 Adapter
            speedco

            Thanks Panagiotis,

             

            It was on our list of things to try, so maybe I'll accelerate this test.

             

            Would still like someone kind enough to confirm whether we'd expect to see 15 MDBs for the MaxPoolDepth annotation of 15? Or confirm whether we even have the right setting here?

             

            Kind regards

             

            Carl

            • 3. Re: Unexpected behaviour with JBoss 6.3 and WebSphere MQ 8.0 Adapter
              pjhavariotis

              Additionally I would recommend you to use the same values for both maxPoolDepth & maxSession activation specification properties.

              • 4. Re: Unexpected behaviour with JBoss 6.3 and WebSphere MQ 8.0 Adapter
                speedco

                Thank you for this. We are now getting a more predictable run.

                 

                We have eliminated the JMSCC0108 error, by introducing maxSessions and altering the Mark Browse Read timeout to not remove those reads.

                 

                We can see our logging only writes out from the x15 expected MDB's, predictably, every cycle (we pause all 15 threads by 60 seconds). They all fire when expected.

                 

                Our only concern left is that when we set the maxDepthPool and maxSessions:

                • set the value to 0, we get 0 'Open Get Count' in MQ
                • set the value to 1, we get 2 'Open Get Count' in MQ
                • set the value to 15, we get 16 'Open Get Count' in MQ

                 

                IS there a setting somewhere that states the MDB count "+1" are started? I'm guessing there is an extra EJB that is warmed up in the pool, which connects to MQ, but NEVER actually runs due to the maxThreadPool/maxSession limit.

                 

                Is there a command in MQ (I know this isn't the forum, but it goes in hand with this; speaking out aloud) that we can list the connected applications to the Queue and QMGR? As this would give us concrete evidence?

                 

                I REALLY Appreciate your and anybody else's help. So close to figuring the issue out here.

                 

                Kind regards

                 

                Carl