配置.Net IBM MQ客户端多主机重连时遇2538错误求助
解决IBM MQ多主机连接2538错误的问题
你的配置出现2538(MQRC_HOST_NOT_AVAILABLE)错误,核心问题是重连选项配置不完整,对多主机故障转移的逻辑理解有误,具体修正点如下:
关键错误分析
单独使用MQC.MQCNO_RECONNECT仅启用基础重连功能,无法触发多主机之间的故障转移。要实现多主机自动切换,必须结合MQC.MQCNO_RECONNECT_Q_MGR选项,该选项允许客户端在当前主机不可用时,尝试连接到连接列表中的其他主机。
修正后的代码
Hashtable properties = new() { { MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_MANAGED }, { MQC.CONNECTION_NAME_PROPERTY, "192.168.1.10(1104),192.168.1.11(1104)" }, { MQC.CHANNEL_PROPERTY, "MyChannel" }, // 组合启用重连及队列管理器级别的故障转移 { MQC.CONNECT_OPTIONS_PROPERTY, MQC.MQCNO_RECONNECT | MQC.MQCNO_RECONNECT_Q_MGR } }; MQQueueManager manager = new("MyManager", properties);
额外检查项
- 确保所有主机上的队列管理器名称均为
MyManager,多主机故障转移要求目标队列管理器名称一致(适用于多实例队列管理器或集群部署)。 - 验证每个主机的
MyChannel通道配置:确认通道传输类型匹配、加密设置(若有)与客户端一致,且客户端拥有连接通道的权限。 - 确认IBM MQ 9.2.0 Managed客户端依赖完整,无缺失组件。
内容的提问来源于stack exchange,提问作者NubieJ
相关产品推荐
相关产品推荐

