Show TOC Anfang des Inhaltsbereichs

Hintergrunddokumentation Verarbeitung von Acknowledgment-Messages  Dokument im Navigationsbaum lokalisieren

Eine Acknowledgment-Message informiert den Sender einer asynchronen Message über das Ergebnis der Verarbeitung dieser Message innerhalb der SAP Exchange Infrastructure. Diese Rückmeldung des Ergebnisses wird als asynchrones Acknowledgment bezeichnet.

Request-Messages

In einer Request-Message muss definiert sein, ob und welche Art von Acknowledgment-Message erwünscht ist. Hierbei kann sich die Acknowledgment-Message auf zwei Ereignisse beziehen:

     Die Ankunft der Request-Message beim endgültigen Empfänger.

·        Die Ausführung der Anwendung auf dem Empfängersystem.

Zu diesem Zweck enthält die Request-Message ein Acknowledgment-Tag, das angibt, zu welchem Ereignis ein Acknowledgment erwartet wird. Dieses Tag muss vom Sender (bzw. einem Sender-Adapter, der Acknowledgment-Messages unterstützt) spezifiziert werden.

Die Message-Verarbeitung der SAP Exchange Infrastructure stellt sicher, dass die Acknowledgment-Message den gleichen Weg vom Empfänger zum Sender zurücklegt wie die Request-Message vom Sender zum Empfänger. Zu diesem Zweck enthält die Request-Message eine Hop List, in der der Weg der Request-Message protokolliert wird und die von allen Integration Engines und Integration Servers versorgt wird, die an der Verarbeitung der Request-Message beteiligt sind.

Acknowledgment-Message

Sobald es während der Verarbeitung einer Request-Message zu einem Ereignis kommt, das ein Acknowledgment erfordert, wird eine entsprechende Acknowledgment-Message erstellt und an den Sender zurückgeschickt.

Eine Acknowledgment-Message erhält eine neue Message-ID, besitzt aber auch eine Referenz auf die Message-ID ihrer Request-Message sowie den Wert Response im Tag Directory des Message-Header. Die Hop List der Request-Message wird in den Header der Acknowledgment-Message kopiert, so dass ein Rückwärts-Routing der Acknowledgment-Message möglich ist.

Bei einer Message-Verzweigung wird für jede neu entstandene Request-Message eine eigene Acknowledgment-Message zurückgeschickt. An diesen Acknowledgments kann der Sender erkennen, dass seine ursprüngliche Message verzweigt wurde.

Für die Verarbeitung von Acknowledgment-Messages werden so genannte Backward-Pipelines verwendet, die für jede Pipeline definiert sind, die an der Verarbeitung von Request-Messages beteiligt sind, also

Pipelines mit den entsprechenden Backward-Pipelines:

Pipeline

Backward-Pipeline

SENDER

SENDER_BACK

CENTRAL

CENTRAL_BACK

RECEIVER

RECEIVER_BACK

Die Hauptaufgaben dieser Backward-Pipelines sind:

·        Der Transport vom Empfängersystem zum Integration Server

Das Empfängersystem sendet eine Acknowledgment-Message zurück zum zugehörigen Integration Server (RECEIVER_BACK), wie er für die lokale Integration Engine definiert wurde.

Ist an der Message-Verarbeitung ein Empfänger-Adapter beteiligt, schickt dieser die Acknowledgment-Message zurück zum Integration Server, sofern der jeweilige Adapter dies unterstützt. Andernfalls wird eine endgültige Acknowledgment-Message zurückgeschickt mit dem Vermerk, dass kein Acknowledgment möglich ist.

·        Transport vom Integration Server zum Sendersystem

Der Integration Server sendet eine Acknowledgment-Message zurück zum Sender (CENTRAL_BACK), wobei er den Namen des Sendersystems für das logische und technische Backward-Routing verwendet.

Diese Grafik wird im zugehörigen Text erklärt

Wird der Sender über einen ABAP-Proxy angesprochen, muss für diesen Sender eine entsprechende Empfängervereinbarung definiert sein.

Ist an der Message-Verarbeitung ein Sender-Adapter beteiligt, geht die Acknowledgment-Message vom Integration Server zu dem Sender-Adapter, der dann für das Zurückschicken des Acknowledgments zum Sender zuständig ist.

Diese Grafik wird im zugehörigen Text erklärt

Bestimmte Adapter-Typen verlangen hierzu eine entsprechende Empfängervereinbarung für den Sender.

Acknowledgments von Fehlern und Fehlerbeseitigung

Hat das Sendersystem eine Acknowledgment-Message angefordert, enthält diese bei erfolgreicher Verarbeitung der Response-Message einen entsprechenden Vermerk. Die Acknowledgment-Message informiert jedoch auch über Anwendungs- oder Systemfehler, die während der Verarbeitung einer asynchronen Request-Message aufgetreten ist. Die Fault-Message ist hierbei als binäres Attachment in der Payload der Acknowledgment-Message enthalten.

Sowohl bei fehlerhaften Request-Messages als auch bei fehlerhaften Acknowledgment-Messages wird die Message-Verarbeitung gestoppt. Solche Messages können Sie im System, in dem der Fehler auftrat, entweder manuell beenden oder erneut starten, nachdem Sie den Fehler korrigiert haben. Verwenden Sie hierzu den Monitor für verarbeitete XML-Messages.

Handelt es sich um einen Systemfehler wird nur dann eine Acknowledgment-Message generiert, wenn im System, in dem der Fehler passiert ist, der Konfigurationsparameter ACK_SYSTEM_ERROR der Kategorie RUNTIME den Wert 1 hat.

Diese Grafik wird im zugehörigen Text erklärt

Tritt ein Systemfehler bei der Verarbeitung von Acknowledgment-Messages auf, wird keine weitere Acknowledgment-Message erstellt, da sich eine Acknowledgment-Message auf eine Request-Message beziehen muss und nicht auf eine andere Acknowledgment-Message.

Wird die Verarbeitung einer fehlerhaften Request-Message manuell beendet, wird auch hierzu eine endgültige Acknowledgment-Message mit entsprechendem Vermerk erzeugt.

Aufgrund dieses Verhaltens können den Sender mehrere Fehler-Acknowledgments erreichen, bevor ein endgültiges Acknowledgment über eine erfolgreiche bzw. manuell beendete Verarbeitung eintrifft. Daher muss der Sender immer auf eine solches endgültiges Acknowledgment warten, bevor er aktiv Schritte zur Fehlerbehebung unternimmt.

Besonderheiten beim IDoc-Adapter

     Die IDoc-Technologie unterstützt eine eigene Acknowledgment-Technik, das ALE-Audit. Dort gibt es keine Acknowledgment-Anforderungen vom Sender, sondern der Empfänger entscheidet anhand der ALE-Konfiguration, ob dem Sender ein Acknowledgment-IDoc zurückgegeben werden soll oder nicht. Diese Acknowledgment-IDocs dienen einzig dem Monitoring auf der Senderseite.

Im Integration Server können Sie mit der Funktion IDoc-Adapter: Acknowledgments festlegen, welche Acknowledgments für einen Sender-Port und Mandanten angefordert werden sollen.

Siehe: Anforderung von Acknowledgments konfigurieren

     Die IDoc-Technologie ist die einzige, bei der positive Acknowledgments von der Anwendung Daten enthalten. Diese können vom IDoc-Adapter in einem Acknowledgment-IDoc zurückgesendet werden, falls es sich bei dem Sender um ein IDoc-System handelt.

Handelt es sich bei dem Sender um kein IDoc-System, können Sie im Integration Server die Funktion ALEAUD für Partner als Request verschicken verwenden, um Acknowledgment-IDocs in XI-Request-Messages umzuwandeln und zu verschicken. Ansonsten werden die Daten verworfen.

Siehe: Acknowledgment-IDoc als XI-Request-Message verschicken

     Damit der IDoc-Adapter ein Acknowledgment-IDoc an den Sender zurückgeben kann, muss für den Sender ein Kommunikationskanal mit dem Interface ALEAUD.ALEAUD01 gepflegt sein.

Ende des Inhaltsbereichs