消息处理

本节描述 Business Integration Connect 如何处理下列影响消息传递的情形:

排队的传递

Business Integration Connect 将有关它希望发送到特定网关的所有文档的信息发布进队列。传递管理器系统按队列接收这些消息的顺序(FIFO)来处理它们,并为每个消息使用一个线程来发送它们。注意,如果网关(例如,传输协议是 HTTP 时的 URL,或传输协议是 JMS 时的 JMS 目的地)被配置为脱机的(请参阅通信错误处理),消息将保存在队列中直到网关被启用(联机)。如果传递管理器接收到某个线程中的错误, 那么它将使其它线程停止尝试传递消息。传递管理器把这些消息放回队列,直到它可以传递引起错误的那个消息。

如果失败尝试的次数超过最大尝试次数,则文档管理器将把消息放入失败目录,然后尝试传递队列中的下一条消息,除非网关处于脱机状态。

通信错误处理

当 Business Integration Connect 是发送者并且应用程序返回一个错误(例如,当使用 HTTP 协议时,HTTP 响应消息不是 200 或 202 消息)时,然后 Business Integration Connect 可以重新尝试再次发送消息,这取决于是如何为这个特定网关配置该协议的。每个网关(对于 HTTP,指定 URL)含有下列选项,这些选项影响重试次数和消息的发送方式:

表 12. 网关配置选项
配置选项 描述
重试计数 当接收到错误时,重新尝试发送文档的次数
重试时间间隔 重试尝试之间的时间间隔
联机/脱机 启动和停止传递尝试
线程数 每个网关上处理消息的发布线程数

如果 Business Integration Connect 没有配置成重试发送消息或所有传递尝试失败,Business Integration Connect 通过执行下列任何或全部操作来发出问题信号:

请参阅管理员指南中的『管理网关配置』,以获取更多信息。

重复消息

Business Integration Connect 收发的所有消息必须有全局唯一标识(GUID)。Business Integration Connect 使用 GUID 来检测重复消息。当使用后端集成封装时,每个消息在传输级头中包含其 GUID。例如,对于 HTTP 协议, 在 x-aux-system-msg-id 字段中包含 GUID(请参阅传输级头的内容)。 消息发送方生成 GUID。文件系统协议不支持重复消息的检查。

如果发送消息的尝试导致错误,Business Integration Connect 每次重试时会重用该消息的 GUID。如果 Business Integration Connect 接收了包含重复 GUID 的消息,它返回一个肯定的应答(例如,HTTP 200)但不处理该重复消息。

注:
如果使用的是 RosettaNet,Business Integration Connect 在 RosettaNet 过程级别上检查重复消息。如果使用的是 XML,也会检查重复消息。

Copyright IBM Corp. 1997, 2004