WS-ReliableMessaging - How it works
WebSphere Application Server uses WS-ReliableMessaging as part of the transport layer for SOAP over HTTP messages. The message exchange patterns supported at the API layer are one-way "fire and forget," or two-way request and reply.
WS-ReliableMessaging became a stabilized feature in WAS v8.5.5.
The reliability is provided by reliable messaging middleware that sits between the web service requester and the web service provider. This middleware layer is shown beneath the dotted line in the following diagram, and includes the reliable messaging source and the reliable messaging destination.
When we use WS-ReliableMessaging with a two-way programming API, if the requesting application fails and is restarted it does not receive its reply message. In this model, WS-ReliableMessaging is being used to protect from network failures only. Moreover:
- Client-side retransmissions start only after the client starts sending new messages to the service (this situation is true for both one-way and two-way operations).
- Two-way operations that resume cannot drive the response message back to the client application; the message gets back only as far as the inbound sequence on the client.
Figure 1. The interactions used to exchange web services messages reliably.
In the previous diagram, the application source invokes a web service. The sequence of interactions is as follows:
- The invocation is passed to the reliable messaging source.
- The reliable messaging source stores the message and then returns control to the application.
- The reliable messaging source sends the message to the reliable messaging destination.
- After the reliable messaging destination receives the message, it stores it locally and sends an acknowledgement message back to the reliable messaging source.
- The reliable messaging source can now delete its copy of the message.
- The reliable messaging destination can deliver the message to the application destination at any time after it receives it from the reliable messaging source.
To configure a web service application to use WS-ReliableMessaging, you attach a policy set containing a WS-ReliableMessaging policy type. This policy type offers a range of qualities of service: managed persistent, managed non-persistent, or unmanaged non-persistent.
The managed qualities of service, managed persistent and managed non-persistent, are supported by the service integration bus. For each attachment between an application and a policy set, we can select the bus and messaging engine to use for the reliable messaging protocol state.
Related:
Qualities of service for WS-ReliableMessaging Web Services Addressing overview Add assured delivery to web services through WS-ReliableMessaging Detect and fix problems with WS-ReliableMessaging