Daniel Hartmann
17. August 2021

Retry-Handling in SAP CPI mittels JMS-Adapter: Teil 1

Cloud

Das Zielsystem war für einen kurzen Augenblick nicht erreichbar, wodurch das System eine Nachricht nicht übermitteln konnte? Dieses Problem lösen Viele damit, dass sie die Nachricht manuell an die SAP CPI schicken. Jedoch können Sie diesen Mehraufwand mithilfe des Retry-Handlings leicht lösen. In diesem Blogbeitrag erfahren Sie Schritt für Schritt, wie Sie mithilfe des JMS-Adapters ein Retry-Prozess einbauen können.

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 die gewünschte Anzahl an Retries erreicht wurde.

Ablegen der Nachricht in die Message Queue

Zur Einfachheit nutzen Sie in dem Integration Flow ein „Start Timer“ und ein „Content Modifier“, um die Nachricht des Senders darzustellen. Damit das System die Nachricht nun temporär in der Message Queue speichert, müssen Sie ein JMS-Adapter hinzufügen.

JMS Message Queue

Hinzufügen eines JMS-Adapters

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 holt.

Konfiguration JMS Adapter

Achten Sie auf den Namen der Queue

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 geholt 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.

JMS Retry Handling

Message aus der Queue entnehmen

In dieser zweitägigen Schulung erfahren Sie, wie die Zukunft von Integrationsszenarien im SAP Umfeld aussieht und wie Sie das dazugehörige Tool einsetzen können – die SAP Cloud Platform Integration. Erlernen Sie, wie Sie eigene Integrationsszenarien im Handumdrehen selbst entwickeln und im Nachgang überwachen können.

Der lokale „Retry Process“

Der lokale Integrationsprozess besteht aus zwei Routen. In der „EndOfRetry“-Route wird die Anzahl der Wiederholungen geprüft. Dabei endet der Prozess, wenn die gewünschten Wiederholungen erreicht wurden. Ist dies jedoch nicht der Fall, so durchläuft das System die Default Route („Retry“). Dadurch gelangt die Nachricht 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.

Retry Prozess

Der Retry-Prozess

Der Prozess wiederholt sich so oft, bis die Bedingung ${header.SAPJMSRetries} > ‘1’ erfüllt ist.

Router Retry Handling

Erfüllte Bedingung

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.

JMS Adapter Konfiguration

Wiederholungsintervall erstellen

Die nächsten Schritte

In unserem zweiten Teil erfahren Sie, wie Sie Retry Messages überwachen und im Fehlerfall eine Email an den IT-Support verschicken. Haben Sie Fragen oder Anmerkungen zur Einrichtung des Retry-Handlings mit JMS? Dann schreiben Sie uns gerne!



Das könnte Sie auch interessieren

Die SAP User Experience Strategie gibt die Richtung vor: SAPUI5 ist im SAP Umfeld die Technologie für Applikationsentwicklung auf der Höhe der Zeit - das gilt sowohl auf mobilen Geräte […]

weiterlesen

In unserem ersten Teil zum Retry-Handling haben wir bereits einen intakten Retry-Prozess erstellt. Doch wie können Sie jetzt wiederholte Nachrichten überwachen? Oder die Messages dynamisch an verschiedene Zielsysteme schicken? Dies und […]

weiterlesen

Stellen Sie sich vor, ein Geschäftspartner kommt auf Sie zu mit der Idee „Lass uns EDI machen, damit verbessern wir unsere Abläufe und verringern die Fehlerquote“. Klingt gut, oder nicht? […]

weiterlesen

Schreiben Sie einen Kommentar

Bitte füllen Sie alle mit * gekennzeichneten Felder aus. Ihre E-Mail Adresse wird nicht veröffentlicht.





Kontaktieren Sie uns!
Alexander Koessner-Maier
Alexander Kössner-Maier Kundenservice