2016-05-15 42 views
0

我有一個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獲取此信息?以上輸出是針對完整存儲庫隊列管理器的。

+0

我不知道我可以說多少種方式。從代碼中刪除正在嘗試輸出INPUT ONLY屬性MQIACF_CLUSTER_INFO的代碼行,並將其替換爲我將您鏈接到所需的頁面上的任何屬性。您已經提供了顯示CLUSQMGR屬性,CLUSTER屬性和CHANNEL屬性的MQSC命令的輸出。這些可以在我的答案的鏈接頁面找到,但爲了幫助您,他們的PCF常量是MQCA_CLUSTER_Q_MGR_NAME,MQCA_CLUSTER_NAME,MQCACH_CHANNEL_NAME。 –

回答

3

使用以下PCF命令

  • 查詢集羣隊列管理器(MQCMD_INQUIRE_CLUSTER_Q_MGR),其是MQSC命令DISPLAY CLUSQMGR的等價物。在鏈接頁面中,您可以看到在ClusterQMgrAttrs前面部分列出的所有可能的輸出參數。您可以刪除正在嘗試檢索MQIACF_CLUSTER_INFO參數的代碼中的行,然後將該行替換爲該部分中列出的任何一個參數,以檢索您想要的任何信息關於此羣集隊列管理器。
  • 查詢隊列(MQCMD_INQUIRE_Q),MQIACF_CLUSTER_INFO參數等同於MQSC命令DISPLAY QUEUE(*) CLUSINFO。請注意,MQIACF_CLUSTER_INFO參數是此命令的輸入限定符,它使羣集隊列以及本地隊列作爲答案返回。

正如您正確地指出的那樣,只有完整的存儲庫隊列管理器知道有關集羣的所有信息,因此您需要對該隊列管理器進行查詢才能獲得完整的圖像。

+0

我試過了,MQIACF_CLUSTER_INFO參數只在查詢集羣隊列管理器中,並且返回null值。有任何想法嗎? – Ajay

+0

我已經更新了我的答案了一下。查詢隊列提供CLUSINFO參數。您可以通過發出等效的MQSC命令來查看。當你說這個值爲空時,你的意思是什麼?價值或什麼是空?你的意思是你從QMgr得到了零迴應嗎? –

+0

當我在MQIACF_CLUSTER_INFO上執行getParamterValue時,我得到一個空值。打印到控制檯打印'null'。我正在對完整的存儲庫QM運行此操作。該羣集還沒有任何Q,但我認爲查詢羣集命令應該仍然有效。 – Ajay

相關問題