Dies ist der 3. Beitrag in meiner Serie über SnapLogic Ultra Pipelines:
Ein robuster Mechanismus zur Fehlerbehandlung ist unerlässlich, um Ausfälle, die Deaktivierung der Ultra Pipeline-Aufgabe und eine Dienstunterbrechung zu vermeiden. Die Fehlerbehandlung kann Ultra Pipelines hinzugefügt werden, indem diese Richtlinien befolgt werden:
- Fehleransichten: Durch Hinzufügen einer Fehleransicht zu allen wichtigen Endpunkt-Anwendungs-Snaps in der Pipeline und Rückgabe einer Antwort mit benutzerdefinierten Fehlermeldungen, Code und http-Statuscode können Sie über Fehler bei der Dokumentenverarbeitung von Ultra Pipelines informiert werden. Der Mapper-Snap, der in der folgenden Pipeline verwendet wird, ermöglicht die Anpassung der Informationen für den Fehlerinhalt, wenn der REST-Post-Snap fehlschlägt.
- Standard für Fehlercodes: Die Kunden können sich auf die Annahme von Standard-HTTP-Antwortcodes und -meldungen einigen, um den Erfolg oder Misserfolg einer Anfrage anzuzeigen. Eine Standard-Fehlercode-Lookup-Datei könnte verwendet werden, um spezifische Fehlerantworten in verschiedenen Phasen der Pipeline zurückzugeben. In der nachstehenden Pipeline wird für jede Fehlerantwort über die gesamte Länge der Pipeline ein anderer HTTP-Statuscode zurückgegeben; so führen beispielsweise ungültige Kopfzeilen zu einem HTTP-Antwortstatuscode 401 und eine ungültige Version zu 406.
Nach Auswahl eines bestimmten Statuscodes können weitere Informationen zum Fehler durch Nachschlagen in einer Datei dieser Struktur abgerufen werden:
[{
“response codes”: [{
“400”: {
“error code”: “4000”,
“error message”: “Malformed request body or missing a required parameter”
}
}, {
“401”: {
“error code”: “4010”,
“error message”: “No valid session key or credentials provided”
}
}]
}]
- Eine verschachtelte Ultra Pipeline-Aufgabe wird erstellt, um den Inhalt der Fehlercode-Suchdatei zurückzugeben; die verschachtelte Ultra Pipeline-Aufgabe wird mit einem Rest-GET-Snap mit der Bezeichnung "http error codes" aufgerufen. Der Mapper-Snap mit der Bezeichnung "error formatter" führt eine Suche nach dem Statuscode-Objekt aus der Datei durch und gibt relevante Fehlercode- und Meldungsinformationen zurück.
- Hierarchie der Dokumentenabfolge: Jedes eingehende Dokument in einem Ultra Pipeline Snap muss seine Hierarchie innerhalb der Pipeline beibehalten, um sicherzustellen, dass das Dokument empfangen, verarbeitet und an den Feed-Master zurückgesendet wurde. Dadurch kann der Feed-Master die Korrelations-ID verwenden, um die Anfrage mit der Antwort zu verknüpfen. In einigen Anwendungsfällen, in denen statische Daten aus Dateien oder Webdiensten verwendet werden, kann es jedoch vorkommen, dass das Dokument seine Herkunft und Identität verliert, was zu Fehlern aufgrund der Hierarchie der Herkunft führt. Ein solches Szenario kann vermieden werden, indem ein Join mit einem statischen Schlüssel verwendet wird, um die statischen Informationen mit jedem Anfragedokument zu verbinden. Bei der Verwendung von Joins in Ultra Pipelines ist Vorsicht geboten, da Ultra Pipelines keine Stapelverarbeitung von Dokumenten zulassen; jeder Snap in einer Ultra Pipeline sollte immer nur ein Dokument auf einmal verarbeiten. Das folgende Beispiel zeigt die Verwendung eines Joins mit einer statischen Konfigurationsdatei für die Parameterzuordnung.
- Verschachtelte Ultra-Pipeline-Aufgaben - Verschachtelte Ultra-Pipeline-Aufgaben können von Ultra-Pipelines mit Rest-Get/Post-Snaps aufgerufen werden. Verschachtelte Ultra-Pipeline-Aufgaben sollten jedoch mit einer robusten Fehlerbehandlung entwickelt werden, so dass, wenn ein Snap in der verschachtelten Ultra-Pipeline auf einen Fehler stößt, dieser zusammen mit den Informationen über den Snap, bei dem die Dokumentenverarbeitung fehlgeschlagen ist, an die übergeordnete Pipeline zurückgegeben werden kann. Dies kann durch Hinzufügen von Fehleransichten zu allen wichtigen Snaps in der verschachtelten Ultra Pipeline und durch Einfügen einer Fehleransicht in den Rest Get Snap, der die verschachtelte Ultra Pipeline aufruft, erreicht werden.
- Wenn Sie im Fehlerfall den ursprünglichen Anforderungsbeleg einbeziehen, können Sie sicherstellen, dass Sie detaillierte Informationen über die Anforderung haben, die einen Fehler in der Pipeline verursacht.
In meinem nächsten Beitrag über die Best Practices der SnapLogic Ultra Pipeline-Implementierung werde ich auf Leistung, Skalierung und Hochverfügbarkeit eingehen.