如何使用可编程命令格式获取MQ Cluster信息?

时间:2016-05-15 19:13:14

标签: ibm-mq

我有一个mq集群设置,它有一些队列管理器,一些是完整的存储库,一些是部分存储库。
一个完整的存储库应该保存有关整个集群的信息(元数据?) 部分存储库将保存有关群集的一些信息 如何使用可编程命令格式收集有关整个群集的信息?
有关主机,队列管理器,完整和部分存储库,群集队列等的信息....

更新1
我尝试了以下代码,但这不会返回群集信息。

PCFMessageAgent agent = new PCFMessageAgent(queueManager);
agent.setCheckResponses(false);
PCFMessage[] responses;
PCFMessage request = new PCFMessage(MQConstants.MQCMD_INQUIRE_CLUSTER_Q_MGR);
request.addParameter(MQConstants.MQCA_CLUSTER_Q_MGR_NAME, queueManager);

responses = agent.send(request);
String clusterName = (String)responses[0].getParameterValue(MQConstants.MQCA_CLUSTER_NAME);
String clusterInfo = (String)responses[0].getParameterValue(MQConstants.MQIACF_CLUSTER_INFO);
logger.info("Cluster Name [" + clusterName + "]");
logger.info("Cluster Information [" + clusterInfo + "]");

最后一行打印出一个空。

更新2 下面的答案表明MQCMD_INQUIRE_CLUSTER_Q_MGR等同于runmqsc DISPLAY CLUSQMGR(*)命令。以下是此命令的输出

display clusqmgr(*)
     4 : display clusqmgr(*)
AMQ8441: Display Cluster Queue Manager details.
   CLUSQMGR(QM_FR1)                        CHANNEL(TO.QM_FR1)
   CLUSTER(CLUSTER1)                    
AMQ8441: Display Cluster Queue Manager details.
   CLUSQMGR(QM_FR2)                        CHANNEL(TO.QM_FR2)
   CLUSTER(CLUSTER1)                    
AMQ8441: Display Cluster Queue Manager details.
   CLUSQMGR(QM_PR1)                        CHANNEL(TO.QM_PR1)
   CLUSTER(CLUSTER1)                    
AMQ8441: Display Cluster Queue Manager details.
   CLUSQMGR(QM_PR2)                        CHANNEL(TO.QM_PR2)
   CLUSTER(CLUSTER1)                    
AMQ8441: Display Cluster Queue Manager details.
   CLUSQMGR(QM_PR3)                        CHANNEL(TO.QM_PR3)
   CLUSTER(CLUSTER1)                    
AMQ8441: Display Cluster Queue Manager details.
   CLUSQMGR(QM_PR3)                        CHANNEL(TO.QM_PR3)
   CLUSTER(CLUSTER1)                    

我期待在我提供的代码中对PCF进行类似的响应,但我没有得到这些信息。
所以问题是 如何使用PCF获取此信息?以上输出适用于完整存储库队列管理器。

1 个答案:

答案 0 :(得分:3)

使用以下PCF命令

  • 查询群集队列管理器(MQCMD_INQUIRE_CLUSTER_Q_MGR),它等同于MQSC命令DISPLAY CLUSQMGR。在链接页面中,您可以看到标有ClusterQMgrAttrs的部分中列出的所有可能的输出参数。您可以删除代码中试图检索MQIACF_CLUSTER_INFO值的行 - INPUT-ONLY 参数 - 并将该行替换为该部分中列出的任何一个参数以检索任何信息这就是你想要的这个集群队列管理器。
  • 使用MQIACF_CLUSTER_INFO参数查询队列(MQCMD_INQUIRE_Q),该参数等效于MQSC命令DISPLAY QUEUE(*) CLUSINFO。请注意,MQIACF_CLUSTER_INFO参数是此命令的输入限定符,它会导致群集队列以及本地队列作为答案返回。

正如您所正确注意的那样,只有完整的存储库队列管理器才知道集群的所有内容,因此您需要对该队列管理器进行查询以获得完整的图像。