MQ V9.2.0.0队列管理器SSL通道重试状态及错误码701问题求助
碰到MQ V9.2.0.0的SSL通道一直重试,还报错误码701?我来帮你拆解这个问题:
问题根源分析
这个错误的核心是队列管理器调用ccigsk_attrib_set_enum - GSK_TRUNCATE_PEER_CERTCHAIN函数时失败,错误码701代表GSKit(MQ依赖的加密库)返回了软件层面的异常。GSK_TRUNCATE_PEER_CERTCHAIN是用来控制是否截断对等方证书链的属性,一旦这个属性设置过程出错,通道就会启动失败并进入重试状态。通道名称显示为????的情况,通常是因为通道在完成注册前就崩溃了,导致日志无法正常识别通道名。
分步解决建议
检查通道SSL配置参数
重点确认通道的TRUNCATECERTCHAIN属性(对应GSK_TRUNCATE_PEER_CERTCHAIN)是否设置有效,有效值只能是YES或NO。如果设置了其他非法值,就会触发这个错误。同时也要核对SSLPEER、SSLPEERCN等证书校验规则,确保和对等方证书链中的信息匹配。验证证书链完整性
用MQ自带的runmqckm工具检查密钥库中的证书链是否完整、有效:runmqckm -cert -list -db <你的密钥库文件名>.kdb -stashed查看证书是否过期、是否存在缺失的中间证书,这些问题也可能导致证书链处理时触发函数调用失败。
确认GSKit版本兼容性
MQ V9.2.0.0要求配套的GSKit版本至少为8.0.55,版本不兼容会导致加密函数调用异常。可以通过gsk8ver命令查看当前GSKit版本,若版本过低,升级到对应兼容版本即可。开启SSL跟踪排查细节
给队列管理器开启SSL跟踪,获取更详细的错误上下文:ALTER QMGR SSLTRACE(*)跟踪日志会记录
ccigsk_attrib_set_enum调用时的具体参数和失败原因,帮你精准定位问题点。修复通道配置并重启
如果确认是TRUNCATECERTCHAIN属性设置错误,修改通道属性后重启通道:# 示例:设置为允许截断证书链 ALTER CHANNEL(XXX) CHLTYPE(SVRCONN) TRUNCATECERTCHAIN(YES) # 重启通道 STOP CHANNEL(XXX) START CHANNEL(XXX)定位未知通道(????)
若通道名显示为????,可以查看队列管理器错误日志中更早的条目,或者检查客户端的连接请求日志,找到触发失败的通道来源,再针对性排查配置。
内容的提问来源于stack exchange,提问作者KhalDrogo

