IBM MQ集群连接问题

时间:2012-02-06 11:24:51

标签: ibm-mq

队列管理器在集群环境中可以放松与存储库的连接的情况是什么? 我有一个环境,队列管理器经常失去与存储库的连接,我需要刷新集群来解决这个问题,并重新建立与集群中其他队列管理器的通信。

我们的群集有100个队列管理器,我们有2个存储库。

1 个答案:

答案 0 :(得分:1)

可能会导致一些不同的问题。一种是如果有明确定义的CLUSSDR通道指向非存储库QMgr。这会导致存储库消息到达非repos QMgr,这可能导致其amqrrmfa存储库进程死亡。另一个原因是,有一些APARS(例如this one)会导致该过程死亡。解决方案分别用于修复配置问题或应用最新的Fix Pack。另一个不太常见的问题是,在新的QMgr可以解析为本地QMgr之前,新QMgr的消息将会出错。在这种情况下,REFRESH实际上并不会导致远程QMgr解析,它只是提供了完成解析的时间。

调试这涉及隔离可能的原因。检查amqrrmfa是否正在运行。检查所有非存储库QMgrs是否只有一个明确定义的CLUSSDR通道。验证所有存储库是否只有一个,并且只有一个显式定义的CLUSSDR到每个其他存储库。如果使用重叠的簇,请确保不与通道重叠。这意味着避免使用TO.QMGR等频道名称,而更喜欢CLUSTER.QMGR等名称。通过确保渠道不使用CLUSNL属性并使用CLUSTER属性来验证这一点。最后,通过发出DIS CLUSQMGR(*)DIS QCLUSTER(*)来协调存储库和非存储库中的对象。存储库应该具有相同的对象库存。如果那是错的那就是问题所在。非存储库应该为之前与之交谈过的每个QMgr都有一个条目。

我过去看过的一件事是管理员安排了REFRESH CLUSTER。他的想法是,他们需要做些什么来修复集群,为什么不定期运行它呢?所以他安排它每天运行。然后每天晚上它让QMgr忘记了群集中的其他QMgrs,并且每天第一次应用程序解决了远程QMgr时,存在大量的存储库流量。这造成了足够的延迟,每天早上有几个2087错误。不是会做这样的事情。 : - )