Show TOC

Background documentationWeb Services Reliable Messaging Locate this document in the navigation structure

 

When using Web services in business-critical applications, it is important that messages are exchanged reliably. Web Services Reliable Messaging (WSRM) ensures that message exchange is performed correctly – without messages getting lost or being duplicated. WS RM ensures a reliable exchange of messages when, for example, the connection to the network is lost during a purchase order.

To guarantee the exchange of messages and also to control the sequence of incoming messages, the WSRM protocol combines one or multiple messages into sequences.

Sequences contain a unique identifier. Messages in a sequence are numbered consecutively. The WS-RM sequence header in the SOAP message identifies the sequence that a message belongs to.

The WS Reliable Messaging implementations at the sender and receiver ensure that messages are transferred securely. A requirement for this is that messages that arrive are confirmed by the receiver. For this, the specification defines the format of an acknowledgement that the receiver sends to the sender as confirmation. The sender waits for the confirmation and, if necessary, keeps sending the message until the confirmation is received.

Sequences are created, opened, closed, activated and terminated by the application (refer to Programming with Sequences).

To avoid unnecessary network communication, the receiver does not have to confirm the receipt of every single message individually, but can confirm whole (not necessarily related) sections in one acknowledgement - for example, confirm that messages 1, 3, and 5 have been correctly received. Since messages 2 and 4 were not confirmed, they are sent again. The sequence is only finished when it has been confirmed that these messages have been successfully received.

Message persistence is not connected to the WSRM protocol and must be adopted by the WSRM implementation.

WSRM implementation of the AS ABAP requires that, at the consumer-side, either all or none of the calls are sent to the provider. At the provider-side every call is processed in a separate transaction. A COMMIT WORK is issued for each message.

An error in a message means that the sequence processing is cancelled. When a termination or error occurs, a sequence can be ended or restarted using the sequence monitor. (Refer to Monitoring Sequences).

For detailed information about WSRM, refer to the OASIS standard for Web Services Reliable Messaging Version 1.1: (http://docs.oasis-open.org/ws-rx/wsrm/200702/wsrm-1.1-spec-os-01.pdf).