Websphere 7 MQueue:如何从Java访问队列深度?

jef*_*ter 2 java websphere messaging ibm-mq

我想编写一些代码来监视Websphere 7 MQ上的队列大小.这是我提出的代码

   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();
Run Code Online (Sandbox Code Playgroud)

我怎么知道"频道"是什么?

我如何知道传递给MQQueueManager的队列管理器名称是什么?

或者我应该看看另一个API?

我需要它与WRS 7 SIB和MQ一起工作.

谢谢Jeff Porter

jef*_*ter 5

我使用了WS 7.0.1.1中的jar

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

我从"IBM Webshpere MQ Explorer"(树中的客户端连接节点)获取了队列管理器名称和通道名称

    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();
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助其他人!