Search code examples
javawebspheremessagingibm-mq

Websphere 7 MQueue: how to access queue depth from Java?


I'd like to write some code to monitor the queue size on Websphere 7 MQ. This is the code I've come up with

   MQEnvironment.hostname = "10.21.1.19"; 
   MQEnvironment.port = 1414;
   MQEnvironment.channel = "SYSTEM.CDEF.SVRCONN";
   MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES);

   MQQueueManager qMgr = new MQQueueManager("MYQMGR");

   MQQueue destQueue = qMgr.accessQueue("PUBLISH", MQC.MQOO_INQUIRE);
   System.out.println(destQueue.getCurrentDepth());
   destQueue.close();
   qMgr.disconnect();

How do I know what the "Channel" is?

How do I know what the queue manager name is that I pass into MQQueueManager?

Or is there another API that I should look at?

I need it work with WRS 7 SIB and MQ.

Thanks Jeff Porter


Solution

  • I used the jars from WS 7.0.1.1

    com.ibm.mq.jar com.ibm.mq.jmqi.jar com.ibm.mq.jmqi.system.jar com.ibm.mq.commonservices.jar com.ibm.mq.headers..jar com.ibm.mq.jmqi.remote.jar

    I got the Queue Manager name and the Channel name from "IBM Webshpere MQ Explorer" (Client Connection node in the tree)

        import com.ibm.mq.MQEnvironment;
        import com.ibm.mq.MQQueue;
        import com.ibm.mq.MQQueueManager;
        import com.ibm.mq.constants.CMQC;
        int openOptions = CMQC.MQOO_INQUIRE + CMQC.MQOO_FAIL_IF_QUIESCING + CMQC.MQOO_INPUT_SHARED;
    
        MQEnvironment.hostname = "10.2.51.19";
        MQEnvironment.port = 1414;
        MQEnvironment.channel = "SW1_QM_CH1";
    
        MQQueueManager qMgr = new MQQueueManager("SW1_QM");
    
        MQQueue destQueue = qMgr.accessQueue("E_RETRY",   openOptions);
        System.out.println("E_RETRY size:" + destQueue.getCurrentDepth());
        destQueue.close();
        qMgr.disconnect();
    

    Hope this helps someone else out!