Ibm mq 如何使用可编程命令格式获取MQ群集信息?

Ibm mq 如何使用可编程命令格式获取MQ群集信息?,ibm-mq,Ibm Mq,我有一个mq群集设置,它有几个队列管理器,一些是完整存储库,一些是部分存储库。 一个完整的存储库应该包含关于整个集群的信息(元数据?)。 部分存储库将保存有关群集的一些信息。 如何使用可编程命令格式收集有关整个群集的信息?有关主机、队列管理器、完整和部分存储库、群集队列等的信息 更新1 我尝试了以下代码,但这不会返回集群信息 PCFMessageAgent agent = new PCFMessageAgent(queueManager); agent.setCheckResponses(fal

我有一个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\u INQUIRE\u CLUSTER\u Q\u 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获取此信息?以上输出适用于完整的存储库队列管理器。

使用以下PCF命令

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

正如您正确地注意到的,只有完整存储库队列管理器知道集群的所有信息,因此您需要对该队列管理器进行查询,以获得完整信息。

使用以下PCF命令

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

正如您正确地注意到的,只有完整存储库队列管理器知道集群的所有信息,因此您需要对该队列管理器进行查询以获得完整的信息。

我尝试了这个方法,MQIACF_cluster_INFO参数仅在查询集群队列管理器上,并且返回的值为null。有什么想法吗?我已经更新了我的答案。CLUSINFO参数在查询队列上可用。您可以通过发出等效的MQSC命令看到这一点。当你说这个值为空时,你是什么意思?值或什么是空值?你的意思是从QMgr返回的响应为零吗?当我在MQIACF_CLUSTER_INFO上执行GetParameterValue时,返回的是空值。打印到控制台会打印“空”。我正在对一个完整的存储库QM运行此操作。这个集群还没有任何Qs,但我认为inquire cluster命令应该仍然有效。正如我所说,MQIACF_cluster_INFO是该命令的一个输入-它只是告诉该命令包含集群信息。该参数没有输出值。从队列管理器返回的响应将包含您的响应。如果您不确定将在响应中获得什么样的信息,请尝试发出MQSC命令(请参阅我的答案),该命令相当于您要发出的PCF comamnd。若你们的问题比你们最初问的要多,也许也要更新它以明确你们想知道什么?我认为最好看一些代码。我已经更新了我的问题并提供了一些代码。你能指出它有什么问题吗?我试过了,MQIACF_CLUSTER_INFO参数只在Inquire CLUSTER队列管理器上,返回的值为null。有什么想法吗?我已经更新了我的答案。CLUSINFO参数在查询队列上可用。您可以通过发出等效的MQSC命令看到这一点。当你说这个值为空时,你是什么意思?值或什么是空值?你的意思是从QMgr返回的响应为零吗?当我在MQIACF_CLUSTER_INFO上执行GetParameterValue时,返回的是空值。打印到控制台会打印“空”。我正在对一个完整的存储库QM运行此操作。这个集群还没有任何Qs,但我认为inquire cluster命令应该仍然有效。正如我所说,MQIACF_cluster_INFO是该命令的一个输入-它只是告诉该命令包含集群信息。该参数没有输出值。从队列管理器返回的响应将包含您的响应。如果您不确定将在响应中获得什么样的信息,请尝试发出MQSC命令(请参阅我的答案),该命令相当于您要发出的PCF comamnd。若你们的问题比你们最初问的要多,也许也要更新一下,弄清楚你们想知道什么?我想是的