WS-Reliable Messaging

The OASIS Web Services Reliable Messaging 1.1 Specification describes a protocol that allows reliable message transfer in the presence of software component, system, or network failures. The specification describes the protocol in a transport-independent manner so it can be implemented using different network technologies. To support interoperable Web services, a SOAP binding is defined within the specification.

The participants in reliable messaging are application source (AS), application destination (AD), reliable message source (RMS), and reliable message destination (RMD), as shown in the following illustration.

WS-RM Participants


An AS wants to reliably send messages to an AD over an unreliable infrastructure. To accomplish this it uses a reliable message source (RMS) and a reliable message destination (RMD). The AS sends a message to the RMS. The RMS uses the WS-Reliable Messaging (WS-RM) protocol to transmit the message to the RMD. The RMD delivers the message to the AD. If the RMS cannot transmit the message to the RMD for some reason, raises an exception or otherwise indicates to the AS that the message was not transmitted. The AS and RMS can be implemented within the same process space or they be separate components. Similarly, the AD and RMD can exist within the same process space or be separate components.

Delivery Guarantees

WS-Reliable Messaging defines the following delivery guarantees:

  • At Least Once Each message is delivered to the AD at least once. If a message cannot be delivered, an error must be raised by the RMS, RMD or both. Messages may be delivered to the consumer more than once (that is, the consumer may get duplicate messages).
  • At Most Once Each message is delivered to the AD at most once. Messages may not be delivered to the AD, but the AD never gets duplicate messages.
  • Exactly Once Each message is delivered to the AD exactly once. If a message cannot be delivered, an error must be raised by the RMS, RMD, or both. The AD never gets duplicate messages.
  • In Order Messages are delivered from the RMD to the AD in the order that they are sent from the AS to the RMS. This guarantee can be combined with any of the other guarantees.

TIBCO ActiveMatrix supports Exactly Once delivery guarantee.

Composition with WS-Addressing

When the WS-RM protocol is composed with the WS-Addressing specification, the following rules prescribe the constraints on the value of the wsa:Action header:

  • When an endpoint generates a message that carries an RM protocol element in the body of a SOAP envelope, that endpoint must include in that envelope a wsa:Action SOAP header block whose value is an IRI that is a concatenation of the WS-RM namespace URI, followed by a "/", followed by the value of the local name of the child element of the SOAP body. For example, for a Sequence creation request message, the value of the wsa:Action IRI would be http://docs.oasis-open.org/ws-rx/wsrm/200702/CreateSequence.
  • When an endpoint generates an acknowledgement message that has no element content in the SOAP body, then the value of the wsa:Action IRI must be http://docs.oasis-open.org/ws-rx/wsrm/200702/SequenceAcknowledgement.
  • When an endpoint generates an acknowledgement request that has no element content in the SOAP body, then the value of the wsa:Action IRI must be http://docs.oasis-open.org/ws-rx/wsrm/200702/AckRequested.
  • When an endpoint generates an RM fault, the value of the wsa:Action IRI must be http://docs.oasis-open.org/ws-rx/wsrm/200702/fault.

Reliable Messaging Elements

WS-RM Participants shows the four participants in a reliable messaging scenario.

Reliable Messaging Elements illustrates how the participants are mapped to composite elements. This section describes how to enable reliable messaging in the participating elements.

Reliable Messaging Participants


As shown in the figure, the Application Source role is performed by Component 1 and a SOAP reference.

Reliable messaging commences when Component 1 initiates a reliable conversation.

In order for the SOAP reference to participate in reliable messaging you must enable WS-Reliable Messaging for the reference. When reliable messaging is enabled, the SOAP reference communicates with a Reliable Message Source implemented by the platform.

The Application Destination role is performed by a SOAP service, which like the reference, must be enabled for WS-Reliable Messaging and Component 2. The SOAP service communicates with a Reliable Message Destination implemented by the platform.

Because WS-Reliable Messaging requires WS-Addressing, you must also enable WS-Addressing on both the SOAP reference and service.