排查错误
本部分解决与 BTAHL7 生成的错误相关的问题。
MLLP 适配器只能在单个主机实例上运行
症状
不能启用传输类型为 MLLP 且接收处理程序不同于其他现有接收位置的接收位置。 此外,不能使用与另一个现有发送端口不同的发送处理程序来登记和启动发送端口。
可能的原因 :只能在单个服务器上使用一个 MLLP 接收 (或发送) 处理程序。 此外,为接收位置 (或发送端口) (MLLP 传输属性) 主机名指定的 URI 必须是“localhost”,或者是接收 (或发送) 适配器处理程序的主机实例所在的服务器名称。
解决方法 :为单个服务器上) 的所有 MLLP 接收位置指定相同的接收 (或发送) 处理程序 (或发送端口。
MSH 和 ACK 架构必须仅添加到一个项目
症状
尝试生成项目时,会收到以下错误之一:
Error: Cannot locate document specification as multiple schemas match the message type "http://microsoft.com/HealthCare/HL7/2X#MSH_24_GLO_DEF"
Schema http://microsoft.com/HealthCare/HL7/2X#MSH_24_GLO_DEF not found
可能的原因 :MSH 和 ACK 架构 (MSH_25_GLO_DEF.xsd 和 ACK_24_GLO_DEF.xsd) 已部署在多个项目中。
解决方法 :确保仅将 MSH_25_GLO_DEF.xsd 和 ACK_24_GLO_DEF.xsd 添加到一个项目。
System.OutOfMemoryException 类型的异常在事件日志中引发了错误
症状
事件日志中出现以下或类似错误:
Exception of type System.OutOfMemoryException has thrown an error.
可能的原因 :处理大量消息时,某些 BTAHL7 引擎组件可能会出现内存泄漏。
解决方法:重启BizTalk Server。
标头序列化在事件查看器中生成错误
症状
即使运行状况和活动跟踪 (HAT) 工具中的消息指示成功,也会在事件日志中收到以下或类似的错误:
An error happened in the header during serialization.
可能的原因 :BTAHL7 配置资源管理器中未正确设置消息头转换值。
解决方法 :在 BTAHL7 配置资源管理器中验证 MSH 映射值。
记录重复的事件 ID 4133 序列化程序错误
症状
事件 ID 4133 – 对于具有无效的 MSH11 值的消息的每个实例,“标头中发生错误”两次。
可能的原因 :处理两个确认时出错, (提交和应用程序 ACK) 事件日志中没有重复错误。 相反,对于两个 ACK,你会收到一个事件 ID 4133。 BTAHL7 为其生成的每个 ACK 创建一个日志条目。
解决方法 :确保邮件具有格式正确且已填充的 MSH11 字段。
使用双向 MLLP 适配器时,发送管道生成错误
症状
事件日志中出现以下或类似错误:
There was a failure executing the send pipeline: "[!INCLUDE[btaBTAHL71.3abbrevnonumber](../../includes/btabtahl71-3abbrevnonumber-md.md)]2XPipelines.[!INCLUDE[btaBTAHL71.3abbrevnonumber](../../includes/btabtahl71-3abbrevnonumber-md.md)]2XSendPipeline" Source: "Microsoft.Solutions.[!INCLUDE[btaBTAHL71.3abbrevnonumber](../../includes/btabtahl71-3abbrevnonumber-md.md)].HL72fAsm" Send Port: "<*host name: port number*>" Reason: Message does not contain a part with name MSHSegment.
可能的原因:接收应用程序不响应确认,并且BizTalk Server需要接收应用程序的响应。
解决方法 :这是设计使然,你可以忽略错误消息。