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 不计入。

另请参阅

处理用 MLLP 编码的消息
发送和接收适配器参数
MLLP 发送适配器处理
设置用于接收 ACK 的发送端口