太好了,您在客户端和服务器上都使用 WMQ v7.0.1!获得负载平衡的诀窍在于如何在 CCDT 中标记通道。当您构建 CCDT 文件时,QMNAME 参数不需要匹配实际的 QMgr 名称。事实上,将其称为 QMNAME 是相当不幸的,因为它会导致期望它与客户端连接的 QMgr 名称之间存在某种关联。实际上,它只是客户端应用程序在搜索 CCDT 时使用的索引。
因此,当您为 10 个 QMgr 构建 CCDT 时,每个都需要一个不同的通道名称,但对所有通道使用相同的 QMgr 名称。例如,
DEF CHL(QMGR01.CLNT) CHLTYPE(CLNTCONN) QMNAME(GTWY.QMGR)
DEF CHL(QMGR02.CLNT) CHLTYPE(CLNTCONN) QMNAME(GTWY.QMGR)
...
DEF CHL(QMGR10.CLNT) CHLTYPE(CLNTCONN) QMNAME(GTWY.QMGR)
然后当应用程序需要连接时,它指定 GTWY.QMGR 作为 QMgr 名称。这将解析为频道条目组。
好的,这样就可以进行故障转移,但不能进行负载平衡。要获得负载平衡,您需要设置 CLNTWGHT 和 AFFINITY 参数,如 V7 文档中的“通道加权和关联示例”部分所述。我建议通读整个父部分Connecting WebSphere MQ client applications to queue manager,尤其是关于 CCDT 和 MQCONN 的部分。