Bereitstellung von Exactly Once
Es gibt folgende Möglichkeiten, eine Exactly-Once End-to-End-Verarbeitung sicher zu stellen:
· Die SOAP-Message, die vom SOAP-Client bereitgestellt wird, muss einen eindeutigen GUID enthalten. Dieser kann in einen gültigen XI-Message-Header im SOAP-Message-Header bereitgestellt werden oder in einem entsprechenden Query-String in der URL angegeben werden.
Erhält der SOAP-Client dann als Antwort eine leere SOAP-Message in HTTP 200, dann bedeutet das, dass die Message erfolgreich persistiert worden ist und genau einmal verarbeitet wird.
Erhält der SOAP-Client einen SOAP-Fault oder irgendeine Antwort nicht in HTTP 200, dann muss er die Message so lange noch einmal versenden, bis er eine leere SOAP-Message in HTTP 200 erhält.

Wenn der GUID vom SOAP-Client gesetzt wird, dann müssen die Kennzeichen Kodierte Header verwenden und Query-String verwenden gesetzt sein.
· Der SOAP-Adapter generiert einen GUID. Dieser wird relevant, wenn der SOAP-Client den GUID nicht bereitstellt. Dazu muss im SOAP-Sender-Adapter Quality-of-Service auf Exactly Once gesetzt sein. Der GUID wird generiert und der Adapter macht einen Exactly Once-Aufruf an den XI-Service.
Wird die XI-Message erfolgreich persistiert, dann schickt der Adapter eine leere SOAP-Message (HTTP 200) als Antwort an den SOAP-Client. Der SOAP-Client weiß nun, dass die Message erfolgreich verschickt wurde.
Erhält der SOAP-Client einen SOAP-Fault, dann muss er die Message so lange noch einmal versenden, bis er eine leere SOAP-Message (HTTP 200) erhält.
Erhält der SOAP-Client einen unvollständigen HTTP 200, dann kann der Client annehmen, dass die Message erfolgreich verarbeitet wurde.
Erhält der SOAP-Client einen unvollständigen HTTP 4xx oder 5xx, dann kann der Client annehmen, dass die Message nicht verarbeitet wurde.
Erhält der SOAP-Client keine Antwort, dann ist die Situation unbestimmt. Dann sollte die Message noch einmal verschickt werden. In diesem Fall ist aber potenziell die Message mehr als einmal ausgeführt.