本部分描述了 WebSphere Partner Gateway 如何处理下列影响消息传递的情形:
WebSphere Partner Gateway 将有关它希望发送到特定网关的所有文档的信息发布到队列。文档管理器按队列接收这些消息的顺序(FIFO)来处理它们,并为每个消息使用一个线程来发送它们。注意,如果网关(例如,传输协议是 HTTP 时的 URL,或传输协议是 JMS 时的 JMS 目的地)被配置为脱机的(请参阅通信错误处理),消息将保存在队列中直到网关被启用(联机)。如果文档管理器接收到某个线程中的错误, 那么它将使其它线程停止尝试传递消息。文档管理器把这些消息放回队列,直到它可以传递引起错误的那个消息。
如果失败尝试的次数超过最大尝试次数,则文档管理器将把消息放入失败目录,然后尝试传递队列中的下一条消息,除非网关处于脱机状态。
当 WebSphere Partner Gateway 是发送方,而且应用程序返回一个错误(例如,当使用 HTTP 协议时,HTTP 响应消息不是 200 或 202 消息)时,然后 WebSphere Partner Gateway 可以尝试再次发送消息,这取决于是如何针对这个特定网关进行配置的。每个网关(对于 HTTP,指定 URL)含有下列选项,这些选项影响重试次数和消息的发送方式:
配置选项 | 描述 |
---|---|
重试计数 | 当接收到错误时,重新尝试发送文档的次数 |
重试时间间隔 | 重试尝试之间的时间间隔 |
联机/脱机 | 启动和停止传递尝试 |
线程数 | 每个网关上处理消息的发布线程数 |
如果 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)但不处理该重复消息。