Retry-Handling in SAP CPI mittels JMS-Adapter: Teil 1
Kennen Sie dieses Problem: Das Zielsystem war für einen kurzen Augenblick nicht erreichbar, wodurch das System eine Nachricht nicht übermitteln konnte. Dieses Problem lösen viele Nutzer damit, dass sie die Nachricht manuell an die SAP Cloud Platform Integration (CPI) schicken. Deutlich einfacher lösen Sie das Problem jedoch mithilfe des Retry-Handlings. In diesem Blogbeitrag erfahren Sie Schritt für Schritt, wie Sie mithilfe des JMS-Adapters einen Retry-Prozess einbauen können.
Das Wichtigste im Überblick
- Retry-Mechanismus: Der JMS-Adapter speichert Nachrichten temporär in der Message Queue und ermöglicht deren Wiederholung. Ein eingebauter Header zählt die Wiederholungen, bis die gewünschte Anzahl an Retries erreicht ist.
- Konfiguration: Der Retry-Prozess erfordert das Hinzufügen eines JMS-Adapters im Integration Flow. Dabei ist der Name der Queue wichtig, da er mit dem JMS-Adapter übereinstimmen muss, der die Nachricht später entnimmt.
- Verarbeitung der Nachricht: Bei einer fehlerhaften Verbindung wird die Nachricht vom „Exception Subprocess“ abgefangen und der Retry-Prozess wird ausgelöst. Die Nachricht wird dabei zurück in die Message Queue gelegt und erneut versucht.
- Einstellung des Wiederholungsintervalls: Das Intervall für Wiederholungen kann im JMS-Adapter eingestellt werden, mit der Möglichkeit, durch die „Exponential Backoff“-Option die Zeit zwischen den Wiederholungen zu verdoppeln.
Wie funktioniert der Retry-Mechanismus in der SAP CPI?
Durch den JMS-Adapter werden die Nachrichten temporär in der Message Queue der SAP CPI gespeichert. Die Nachrichten können von dort aus beliebig oft wiederholt werden. Dafür zählt ein eingebauter Header von SAP die Wiederholungen hoch bis zur gewünschten Anzahl an Retries.
Mit SAP Cloud Integration vereinfachen wir Ihre Integrationslandschaft, schaffen volle Transparenz über alle Datenflüsse und senken Betriebs- und Entwicklungsaufwände um bis zu 50 %.
Ablegen der Nachricht in die Message Queue
Um es einfacher zu machen nutzen Sie in dem Integration Flow einen „Start Timer“ und einen „Content Modifier“, um die Nachricht des Senders darzustellen. Damit das System die Nachricht nun temporär in der Message Queue speichert, müssen Sie einen JMS-Adapter hinzufügen.
Bei der Konfiguration des Adapters müssen Sie auf den Namen der Queue achten. Dieser muss identisch mit dem später konfigurierten JMS-Adapter sein, der die Nachricht aus der Queue entnimmt.
Entnehmen der Nachricht aus der Message Queue
Damit das System die Nachricht an den Empfänger übermitteln kann, muss die Message zuerst aus der Queue entnommen werden. Dazu nutzen Sie den JMS-Adapter mit dem zuvor festgelegten „Queue Name“. In unserem Beispiel simulieren wir eine fehlerhafte Verbindung zu dem Endsystem mit einer falschen Adresse. Dadurch erscheint über den IDoc-Adapter ein gelbes Ausrufezeichen. Der „Exception Subprocess“ fängt die fehlerhafte Nachricht ab und ruft den lokalen Integrationsprozess „Call Retry Process“ auf.

Der lokale „Retry Process“
Der lokale Integrationsprozess besteht aus zwei Routen.
- EndOfRetry-Route: Hier findet die Prüfung der Anzahl der Wiederholungen statt. Dabei endet der Prozess, wenn die gewünschten Wiederholungen erreicht wurden.
- Default-Route („Retry“): Funktioniert die erste Route nicht durchläuft das System die Default-Route. Die Nachricht gelangt wieder zurück in die Message Queue und der JMS-Adapter entnimmt diese zum Wiederholen. Der Standard-Header „SAPJMSRetries“ erhöht sich während des Prozesses.
Der Prozess wiederholt sich so oft, bis die Bedingung ${header.SAPJMSRetries} > ‘1’ erfüllt ist.
Somit verfügt der Header nach der ersten Wiederholung über einen Wert von 1. Da die Bedingung aber immer noch nicht erfüllt ist, gibt es einen weiteren „Retry“. Nach der zweiten Wiederholung hat „SAPJMSRetries“ den Wert 2, weshalb die „EndOfRetry“-Route durchläuft und der Prozess endet.
Einstellung des Wiederholungsintervalls
Im JMS-Adapter können Sie unter dem Reiter „Connection“ das Wiederholungsintervall einstellen. Das Intervall ist die Anzahl der Minuten, die das System nach einer Wiederholung abwarten soll, bevor eine weitere beginnt. Mit Anhaken der Checkbox „Exponential Backoff“ verdoppeln Sie die Zeit zwischen jeder Wiederholung. Dies hat den Vorteil, dass das System bei längerer Ausfallzeit des Zielsystems nicht alle Nachrichten schnell hintereinander wiederholt.
Fazit
Das Retry-Handling in der SAP CPI ermöglicht eine effiziente und automatisierte Wiederholung von Nachrichten, deren Übermittlung aufgrund von temporären Ausfällen nicht stattfinden konnte. Durch die Konfiguration des JMS-Adapters und des Retry-Prozesses wird der Aufwand minimiert und die Verfügbarkeit des Systems verbessert.
Im zweiten Teil zum Retry-Handling in der SAP CPI erfahren Sie, wie Sie Retry Messages überwachen und im Fehlerfall eine Email an den IT-Support verschicken.
Websession: SAP CPI

Haben Sie Fragen zur Einrichtung des Retry-Handlings mit JMS? Vereinbaren Sie gerne einen unverbindlichen Termin mit uns!
Dieser Artikel erschien bereits im August 2021. Der Artikel wurde am 16.12.2025 erneut geprüft und mit leichten Anpassungen aktualisiert.
FAQ
Wie funktioniert der Retry-Mechanismus in der SAP CPI?
Der JMS-Adapter speichert Nachrichten in der Message Queue und ermöglicht es, diese mehrfach zu wiederholen, bis die gewünschte Anzahl an Retries erreicht ist.
Welche Schritte sind notwendig, um den Retry-Prozess zu konfigurieren?
Der Retry-Prozess erfordert das Hinzufügen eines JMS-Adapters und die Konfiguration des „Queue Names“, um Nachrichten in die Message Queue zu legen und sie bei Bedarf zu wiederholen.
Was passiert bei einer fehlerhaften Nachricht?
Der „Exception Subprocess“ fängt fehlerhafte Nachrichten ab und der lokale Integrationsprozess „Call Retry Process“ wird aufgerufen, um die Nachricht erneut zu versuchen.
Wie kann das Wiederholungsintervall eingestellt werden?
Im JMS-Adapter kann das Wiederholungsintervall unter dem Reiter „Connection“ eingestellt werden. Mit der Option „Exponential Backoff“ lässt sich die Zeit zwischen den Wiederholungen verdoppeln.













