Start of Content Area

Background documentation Ensuring Exactly Once Processing  Locate the document in its SAP Library structure

You can ensure exactly-once end-to-end processing in the following ways:

·        The SOAP message provided by the SOAP client must contain a unique GUID. This can be provided in a valid XI message header in the SOAP message header or specified in a corresponding query string in the URL.

If the SOAP client then receives an empty SOAP message in HTTP 200 as a response, this means that the message has been successfully persisted and will be processed exactly once.

If the SOAP client receives a SOAP fault or any response not in HTTP 200, it must resend the message until it receives an empty SOAP message in HTTP 200.

Note

If the GUID is set by the SOAP client, you must set the Use Encoded Headers and Use Query String indicators.

·        The SOAP adapter generates a GUID. This becomes relevant if the SOAP client does not provide the GUID. In this case, you must set the Quality of Service in the sender SOAP adapter to Exactly Once. The GUID is generated and the adapter calls the XI service exactly once.

If the XI message is successfully persisted, the adapter sends an empty SOAP message (HTTP 200) to the SOAP client as a response. The SOAP client now knows that the message has been sent successfully.

If the SOAP client receives a SOAP fault, it must resend the message until it receives an empty SOAP message (HTTP 200).

If the SOAP client receives an incomplete HTTP 200, the client can assume that the message has been processed successfully.

If the SOAP client receives an incomplete HTTP 4xx or 5xx, the client can assume that the message has not been processed.

If the SOAP client does not receive a response, the situation is uncertain. In this case, it should send the message again. However, this can mean that the message is executed more than once.

 

 

 

 

End of Content Area