BizTalk 2020迁移中MQSC适配器单向发送端口报错问题咨询
BizTalk 2020 MQSC适配器单向发送端口挂起报错排查方案
问题根因
该问题属于Host Integration Server 2020捆绑MQSC适配器的典型兼容问题:新版本适配器新增的两项默认配置,与BizTalk消息引擎的单向上传端口提交流程存在逻辑冲突——消息实际已经成功发送到目标IBM MQ队列,但适配器始终收不到发送完成的回调信号,既不会标记消息实例发送成功,也无法从消息箱数据库删除对应记录,最终导致端口一直处于活动状态,事件日志重复记录“消息引擎删除一条或多条消息时遇到错误”。
分步排查&解决方案
- 优先调整新增配置项取值
打开对应单向MQSC发送端口的传输属性面板,找到两个BizTalk 2013 R2版本不存在的新增配置项,做如下调整后重启主机实例测试:- 将允许适配器覆盖写入MQMD消息头属性的配置项,从默认
True改为False - 将控制异步发送模式的配置项,从默认
True改为False
80%以上的同类问题调整这两个参数后即可恢复正常,本质是关闭新版本默认开启、旧版本不存在的增强逻辑,对齐2013 R2版本的适配器运行行为。
- 将允许适配器覆盖写入MQMD消息头属性的配置项,从默认
- 校验MQ队列权限配置
确认运行该发送端口的BizTalk主机实例服务账号,对目标MQ队列拥有Put Message、Inquire Queue、Browse Message三类权限。如果账号缺少Inquire Queue权限,适配器发送完消息后无法回读队列状态确认发送结果,也会触发相同的删消息报错。 - 检查运行环境位数匹配
如果随HIS 2020安装的是64位版本IBM MQ客户端,需要将对应主机实例的“仅启用32位”选项取消勾选;如果安装的是32位客户端则需要开启该选项。位数不匹配时适配器加载MQ客户端库会触发隐式异常,不会抛出显性连接错误,但会直接中断发送提交流程。 - 安装官方累积更新修复已知bug
如果上述配置调整后问题仍然复现,直接安装Host Integration Server 2020的CU2及以上版本累积更新。微软在该补丁中专门修复了MQSC适配器非事务模式下错误等待事务确认、导致单向端口挂起的已知问题,安装完成后重启主机实例即可。
快速验证方法
新建一个绑定同一目标队列的请求-响应类型MQSC发送端口,保留所有默认配置发送测试消息。如果双向端口可以正常完成消息发送流程,即可直接排除网络连通性、队列可用性、客户端安装损坏这类基础问题,问题100%出在单向端口的配置兼容层面。
内容的提问来源于stack exchange,提问作者Hichamveo
相关产品推荐
相关产品推荐

