
Das Adapter-Framework stellt ein transaktionales Konzept zur Verfügung, das eine sichere Lösung für Quality-of-Service Exactly Once für Sender- und Empfängeradapter liefert. Im Senderkanal können in Fehlersituationen mögliche Duplikate erkannt und gelöscht werden. Im Empfängerkanal ist in der Regel eine Aktion des Administrators nötig, um den Fehlerzustand zu beheben.
Für asynchrone Messages darf ein Adapter:
Folgende Voraussetzung besteht für die Empfängerrichtung:
Zurzeit werden für die Senderrichtung Acknowledgment-Messages nicht unterstützt. Prüfen Sie SAP-Hinweis 1004000 bezüglich späterer Änderungen.
Um eine Exactly Once-Auslieferung zu implementieren, sollte der Adapter folgende Services verwenden:
MessageIDMapper
Mit diesem Service können Sie eine externe Message-ID auf eine XI-Message-ID mappen. Das Mapping wird in der Datenbank gespeichert und kann in derselben LUW (Logical Unit of Work) wie der Adapter-Framework Messaging-Service ausgeführt werden.
Weitere Informationen: Message-ID Erzeugung, Persistenz und Mapping
Das Adapter-Framework erwartet zwingend, dass der Adapter eine externe Message-ID zur Verfügung stellt. Entweder kann die Message-ID des externen Protokolls verwendet werden, oder es werden Message-IDs durch Algorithmen, beispielsweise Hash erzeugt.
Ein Beispiel für eine ID eines externen Protokolls ist die JMS-Message-ID
Im Beispieladapter wird sie aus folgenden Elementen erzeugt: Dateiname, Dateiverzeichnis und Änderungszeit.
TransactionManager
Der AS Java stellt die Funktionen des Paketes com.sap.transaction zur Verfügung. Der com.sap.transaction.TxManager wird dazu verwendet, LUWs auch über unterschiedliche Komponenten (service, ejb und jca) zu kontrollieren.
Die Message-Verarbeitung sieht in Sender- und Empfängerrichtung unterschiedliche Schritte vor: