MLLP 接收适配器处理
最小下层协议 (MLLP) 接收适配器支持单向和双向请求响应模式。 适配器侦听并接受连接。
当 MLLP 接收适配器在双向模式下运行时,在管道为上一条消息生成确认 (ACK) 之前,适配器不会从连接接收新消息。
配置参数
接收处理程序的参数在 BizTalk 主机级别配置,并应用于与其关联的所有 MLLP 接收位置。
参数 | 使用 |
---|---|
最大接受连接限制 | 限制接收适配器将接受的并发打开连接数。 |
使用双向 MLLP 接收适配器的确认
当双向 MLLP 接收适配器收到消息时,Microsoft BizTalk Accelerator for HL7 (BTAHL7) 可以生成以下类型的 ACK:
HL7 增强提交 ACK:在此方案中,BTAHL7 在同一连接上发送提交 ACK。 它会在不同的发送端口上发送应用程序接受确认。
应用程序接受 ACK:在此方案中,BTAHL7 在同一连接上发送应用程序接受 ACK。
静态 ACK:在此方案中,BTAHL7 在同一连接上发送 ACK。
生成的 ACK 类型取决于发送消息的参与方的 BTAHL7 配置资源管理器设置。 单个邮件的字段 MSH 15 和 16 中的值可以替代此设置。 但是,对于需要静态 ACK 的应用程序,只能通过 BTAHL7 配置资源管理器设置配置。
错误条件
当存在错误条件或处于非活动状态时,会发生以下事件:
如果禁用接收位置或BizTalk Server关闭,则会发生以下情况:
接收位置将不再接受新连接。
对于现有连接,BizTalk Server完全接收当前消息,然后关闭连接。
当检测到处于非活动状态 (在指定的超时) 的接收位置上未收到有效负载数据时,适配器将关闭连接。
如果BizTalk Server收到不完整的消息,则收到的部分将被挂起。 在消息外部接收的所有字节 (新连接上的第一个 SB 之前,下一个消息) 的 EB/CR 与 SB 之间。
如果管道无法分析消息,则消息仍会传递到 MessageBox 数据库,其升级属性 为 ParseError=true。
如果消息因缺少订阅或标头中的结构错误而失败,BizTalk Server在分析) 之前以原始“线路”形式挂起消息 (。 无订阅失败的常见原因是缺少升级的属性。 由于BizTalk Server挂起未解析的消息,BTS。MessageType 将为空。
下表列出了 MLLP 接收适配器返回的错误。
事件 | ID | 错误条件 |
---|---|---|
ErrorListening | 8448 | 无法绑定到本地套接字 (很可能其他某些本地应用程序) 使用相同的 IP 地址/端口 ID 组合。 |
ErrorAcceptingConnection | 8449 | 无法与远程方建立 TCP 连接。 BizTalk Server达到最大连接限制,或者资源不足。 |
ErrorSubmittingMessage | 8452 | MessageBox 数据库无法接受该消息。 SQL Server不可用或资源不足。 |
ErrorSendingAck | 8454 | BizTalk Server无法返回确认,因为连接不可用。 |
性能计数器
下表列出了 MLLP 适配器使用的性能计数器。
计数器 | 含义 |
---|---|
字节 | 接收或发送的所有文档的有效负载的大小。 |
字节/秒 | 接收或发送的有效负载的当前吞吐量。 |
Documents processed | MLLP 接收: 成功传递到 MessageBox 数据库的文档数。 MLLP 发送: 成功传递到远程应用程序的文档数。 |
文档失败 | MLLP 接收: 未成功传递到 MessageBox 数据库的文档数。 MLLP 发送: 未成功传递到远程应用程序的文档数。 |
连接状态 | 适配器连接的状态,1 或 0 (1 =已连接) 。 |
性能计数器实例使用以下命名方案:
{recv|trans} : connection name : remote IP address : remote port ID
其中 MLLP 接收适配器使用“recv”前缀,MLLP 发送适配器使用“trans”。
注意
接收端口发送的 ACK (例如,在双向模式下运行的适配器) 和发送端口 (运行以在同一套接字连接) 接收 ACK 不计入。