【发布时间】:2016-05-19 19:02:56
【问题描述】:
我有一个 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 获取此信息?以上输出适用于完整的存储库队列管理器。
【问题讨论】:
-
我不知道我能说多少种方式。从您的代码中删除试图打印出 INPUT ONLY 属性 MQIACF_CLUSTER_INFO 的行,并将其替换为我链接到您需要的页面上的任何属性。您已经提供了 MQSC 命令的输出,显示了 CLUSQMGR 属性、CLUSTER 属性和 CHANNEL 属性。这些可以在我的答案的链接页面上找到,但为了帮助您,它们的 PCF 常量是 MQCA_CLUSTER_Q_MGR_NAME、MQCA_CLUSTER_NAME、MQCACH_CHANNEL_NAME。
标签: ibm-mq