WS-ReliableMessaging 的服务质量
使用 WS-ReliableMessaging 可以获取不同的服务质量,取决于存储所提供的用于管理可靠消息传递状态的耐久性和事务支持的级别。这些服务质量的范围从保护消息以防其在网络上丢失,一直到保护服务器以免发生故障。
WebSphere® Application Server 为使用 SOAP over HTTP 绑定的 WS-ReliableMessaging 提供下列三种服务质量。将应用程序部署至应用程序服务器时,将支持所有这三种服务质量。瘦客户机和客户机容器应用程序仅使用第一个选项。
- 非受管非持久
- 可以配置 Web Service 应用程序以便将 WS-ReliableMessaging 与缺省内存中存储配合使用。此服务质量只需要进行最低限度的配置。但是,它是非事务性的,虽然它允许重新发送在网络中丢失的消息,但如果服务器不可用,您将丢失消息。此服务质量仅适用于单服务器,不支持集群。
z/OS® 平台上不支持此服务质量。
- 受管非持久
- 此内存服务质量选项使用消息传递引擎来管理序列状态,如果内存不足,就将消息写入磁盘。此服务质量允许重新发送在网络中丢失的消息,另外,还可以从服务器故障中恢复。但是,在消息传递引擎重新启动后状态会废弃,在这种情况下,您会丢失消息。 此选项同时支持集群及单个服务器。
- 受管持久
- 用于异步 Web Service 调用的此服务质量不可恢复。另外,此选项还使用消息传递引擎和消息存储来管理序列状态。消息持久保存在 Web Service 请求者服务器和 Web Service 提供程序服务器中,如果服务器变为不可用,那么可以恢复这些消息。服务器不可用时未成功传输的消息可以在服务器重新启动后继续传输。
注:
- 使用 WS-ReliableMessaging 时取得的服务质量是管理消息的存储耐久性的直接结果。
- 当使用按顺序传递和任一种受管服务质量时,如果服务导致错误,那么会将消息重新分派回服务。
- 与其他供应商的 WS-ReliableMessaging 实现进行交互时,必须确保这些实现可提供所需的服务质量。
如何实现不同的服务质量
当 Web Service 应用程序调用 Web Service 时,就会将 SOAP 消息添加至 WS-ReliableMessaging 存储。对于受管服务质量,使用发送应用程序的事务将消息放入消息存储中。事务落实后,该消息就可用于传递。另一个服务质量选项不是事务性的,因此它认为消息立即可用于传递。
WS-ReliableMessaging 协议用于可靠地将消息传递至存储并应答该消息的目标服务器。
从消息存储中读取消息并将它分派至接收应用程序。对于受管持久服务质量,可使用事务读取消息,然后分派应用程序。
有关使用 WS-ReliableMessaging 事务的更多信息,请参阅通过 WS-ReliableMessaging 提供事务性可恢复消息传递。
图 1. 使用存储可靠地交换 Web Service 消息。

服务集成总线支持受管服务质量(即,受管持久和受管非持久服务质量)。 对于应用程序和策略集之间的每个连接,可以选择总线与消息传递引擎以用于可靠消息传递协议的状态。