Wenn Sie mit Oracle Integration Cloud arbeiten, stoßen Sie früher oder später auf ein Problem mit API Rate Limits.
Die Integration erhält eine riesige Datenkollektion, aber die Ziel-API akzeptiert nur Einzelaufrufe.
Oder, noch komplexer, es müssen im Ziel-System verschiedene Einzelschritte gesetzt werden, die Schnittstelle erhält viele Aufrufe in kurzer Zeit.
Das ist kein Problem, solange man nicht an ein Request-Limit stößt. Dann antwortet die API gnadenlos mit einem Error und lässt uns erstmal warten.
In diesem Tutorial zeigen wir Ihnen, wie Sie mit etwas Logik und der Wait Activity in wenigen Schritten einen „Chill-Out“ Step für Ihre Integration einbauen.
Das Szenario
- Eine Datenbank liefert uns die neuesten Leads per REST-API als JSON-Array
- Wir übertragen diese Leads an unser CRM, allerdings erlaubt die REST-API des CRM nur die Anlage eines Datensatzes pro Aufruf
- Wir setzen eine ForEach-Schleife ein und arbeiten die einzelnen Leads geordnet ab
- Das CRM hat ein API-Limit von 100 Aufrufen pro 5 Minuten. Oracle Integration schickt aber mehrere Aufrufe pro Sekunde.
- Wir erreichen das Limit, die CRM-API antwortet mit „429 – Too Many Requests„
- Die Integration wirft einen Fehler aus und stoppt.
Um dies zu verhindern, bauen wir einen „Chill-Out“ Step in die Integration ein und geben der Integration Zeit, um das Request-Limit abzuwarten und dann den nächsten Schwung an Daten zu übertragen.
Die Lösung in 5 schnellen Schritten
Die Variable initialisieren
Vor die For Each Schleife setzen wir eine Variable (z.B. callCount) mit dem Wert 0. Diese Variable zählt für uns die Aufrufe.
Den Wert der Variable nach jedem API-Aufruf erhöhen
In unserem Fall erfolgt pro Array-Element ein einzelner API-Aufruf und wir erhöhen den Zähler um 1
Ein Switch innerhalb der ForEach-Schleife
Hier legen wir das API-Limit fest, das wir hoffentlich durch die API-Dokumentation kennen oder, wenn nicht, uns durch Try & Error annähern. In unserem Fall sind das 100 Aufrufe. Die Bedingung legt also fest, dass wir ab Aufruf 101 eine Pause benötigen
Wenn die Switch-Bedingung erfüllt ist und das API-Limit erreicht wurde:
Einen Warteschritt einsetzen
Wir lassen die Integration nun so lange abkühlen, bis es sicher ist, die Ziel-Schnittstelle wieder aufzurufen. In unserem Fall sind das 5 Minuten (300 Sekunden)
Den Zähler zurücksetzen
Zum Schluss setzen wir den Zähler wieder auf 0. Die Integration überträgt wieder Daten bis das Limit erneut erreicht ist.
Das Ergebnis
Eine resiliente Integration, die sich selbst reguliert. Wir arbeiten große Datenmengen stabil ab, ohne die Zielsysteme zu überlasten oder Fehlermeldungen im Monitoring zu riskieren.



