消息处理

本部分描述了 WebSphere Partner Gateway 如何处理下列影响消息传递的情形:

排队的传递

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

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

通信错误处理

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

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

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

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

重复消息

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

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

注: 如果使用的是 RosettaNet,WebSphere Partner Gateway 在RosettaNet 过程级别上检查重复消息。如果使用的是 XML,还会检查重复消息。

Copyright IBM Corp. 2003, 2005