MLLP 接收适配器处理

MLLP (下层协议) 接收适配器支持单向和双向请求响应模式。 适配器侦听并接受连接。

当 MLLP 接收适配器在双向模式下运行时,在管道为前一条消息生成确认 (ACK) 之前,适配器不会从连接收到新消息。

配置参数

接收处理程序的参数在 BizTalk 主机级别配置,并应用于与其关联的所有 MLLP 接收位置。

参数 使用
最大接受连接限制 限制接收适配器将接受的并发打开连接数。

使用双向 MLLP 接收适配器的确认

当双向 MLLP 接收适配器收到消息时,Microsoft BizTalk Accelerator for HL7 (BTAHL7) 可生成以下类型的 AKS:

  • HL7 增强型提交 ACK:在此方案中,BTAHL7 在同一连接上发送提交 ACK。 它会在不同的发送端口上发送应用程序接受 ACK。

  • 应用程序接受 ACK:在此方案中,BTAHL7 在同一连接上发送应用程序接受 ACK。

  • 静态 ACK:在此方案中,BTAHL7 在同一连接上发送 ACK。

  • 生成的 ACK 的类型取决于发送消息的一方 BTAHL7 配置资源管理器设置。 单个消息的字段 MSH 15 和 16 中的值可以替代此设置。 但是,对于需要静态 AKS 的应用程序,只能通过 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"。

注意

接收端口发送的 AKS (例如,在双向模式) 和发送端口 (以在同一套接字连接上接收 AKS 的适配器) 不计数。

另请参阅

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