如何通过Java显示MQ客户端列表?

How to show MQ client list by Java?

是否可以通过Java显示一个MQ服务器(或MQ队列管理器,或通道)的所有客户端?因为有时候连接太多,需要监控

我检查了 com.ibm.mq.MQQueueManager 的 API (https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_7.5.0/com.ibm.mq.javadoc.doc/WMQJavaClasses/com/ibm/mq/MQQueueManager.html) 我可以用它来获取队列深度,但我无法获取它的客户端连接信息(例如:IP 地址)。

如果无法获取IP地址,是否可以只获取"connection count"?

您需要通过 Java 使用 MQ PCF。

request = new PCFMessage(CMQCFC.MQCMD_INQUIRE_CHANNEL_STATUS);
request.addParameter(CMQCFC.MQCACH_CHANNEL_NAME, "TEST.CHL");
request.addParameter(CMQCFC.MQIACH_CHANNEL_INSTANCE_TYPE, CMQC.MQOT_CURRENT_CHANNEL);
request.addParameter(CMQCFC.MQIACH_CHANNEL_INSTANCE_ATTRS,
                     new int []
                     {
                        CMQCFC.MQCACH_CHANNEL_NAME,
                        CMQCFC.MQCACH_CONNECTION_NAME,
                        CMQCFC.MQIACH_CHANNEL_STATUS,
                        CMQCFC.MQIACH_CHANNEL_SUBSTATE,
                        CMQCFC.MQIACH_MSGS,
                        CMQCFC.MQCACH_LAST_MSG_DATE,
                        CMQCFC.MQCACH_LAST_MSG_TIME,
                        CMQCFC.MQCACH_CHANNEL_START_DATE,
                        CMQCFC.MQCACH_CHANNEL_START_TIME,
                        CMQCFC.MQIACH_BYTES_SENT,
                        CMQCFC.MQIACH_BYTES_RECEIVED,
                        CMQCFC.MQIACH_BUFFERS_SENT,
                        CMQCFC.MQIACH_BUFFERS_RECEIVED,
                        CMQCFC.MQIACH_MCA_STATUS,
                        CMQCFC.MQCACH_MCA_JOB_NAME,
                        CMQCFC.MQCACH_MCA_USER_ID
                     } );

responses = agent.send(request);