Automatisierung des Neustarts ausgewählter Fehler-Jobs

Prev Next

Nehmen wir an, ein Profil sendet im Antwortweg an ein Zielsystem, das häufig zu nicht vorhersehbarer Zeit neu gestartet wird. In Spitzenzeiten verarbeitet das Profil pro Stunde 3000 Jobs. Infolge einer Serialisierung der Daten führt schon das Fehlen einer Zieldatei zum Stillstand des gesamten Prozesses.

Dadurch entsteht durch die Unverfügbarkeit des Zielsystems zu unbestimmten Zeiten die Notwendigkeit, eine große Anzahl von Jobs neu zu starten.

Alle Fehler dieses Profils, die durch Unverfügbarkeit des Zielsystems in die Fehlerübersicht des Control Centers kommen, haben gleiche Eigenschaften, die sich von anderen Fehlern unterscheiden. Das ist der Ansatzpunkt für die Automatisierung des Neustarts.

Zu dieser Automatisierung des Neustarts ausgewählter Fehler-Jobs werden zwei Klassen mitgeliefert, die zunächst das Auslesen der Fehlerliste aus dem Control Center durch ein Profil erlauben, sowie anschließend den automatischen Neustart einer Liste von Fehler-Jobs durch dieses Profil. Mehr dazu später.

Das Profil selbst ist für die Auswertung der Fehlerliste und die Auswahl der Jobnummern anhand der Fehlernummer und des Fehlertextes zuständig.

Da System-Landschaft, Fehler-Szenarien und Ziele der Anwender hier sehr spezifisch sind, muss dieses Profil vom Anwender entwickelt werden. Allgemeine Lösungen sind hier nicht möglich. Unter Umständen ist auch noch die Entwicklung einer oder mehrerer kundenspezifischer Klassen nötig.

Auslesen der Fehlerliste aus dem Control Center

Die Klasse ErrorRetrieveCron ermöglicht es einem Profil, nachfolgend Management-Profil genannt, Fehler auszulesen, die im Control Center unter Logs/Fehler stehen.

Die Klasse erzeugt eine Fehlerliste mit zwei Satzarten pro Fehler.

  • Satzart Error: Master-Satz jedes Fehlereintrags, der pro Job einmal auftritt.

  • Satzart Stack: Optionaler Satz, der nach dem Error-Satz mehrmals auftreten kann und eine genaueste Identifizierung durch den Stacktrace erlaubt.

Die Fehlerliste kann auf bestimmte Profile und/oder auf bestimmte Phasen beschränkt werden.

Das Management-Profil mit zeitgesteuertem Eingangsagenten kann in regelmäßigen Zeitabständen anlaufen oder auch getriggert (von einem anderen Profil angestoßen) werden.

Anschließend erfolgt die Auswertung der Fehlerliste.

Siehe auch

Siehe auch Funktion get unassigned errors().

Auswertung der Fehlerliste

Im Management-Profil können nochmal genauere Eingrenzungen der Fehler erfolgen, z. B. durch Bewertung des Fehlertextes oder des Stacktrace, um daraus dann die Jobnummern der Fehler-Jobs zu ermitteln, die automatisch neu gestartet werden sollen. Diese Jobnummern werden als Liste, jeweils eine Jobnummer pro Zeile, an die Antwortklasse RestartFailedJob übergeben. Siehe Abschnitt Automatischer Neustart einer Liste von Fehler-Jobs.

Außerdem kann das Management-Profil gegebenenfalls vorher prüfen, z. B. über eine Klasse zur Umgebungsprüfung oder über Funktionen, ob das Zielsystem verfügbar ist, um den Restart der Jobs nicht zu beginnen, wenn das Zielsystem noch nicht wieder verfügbar ist.

Automatischer Neustart einer Liste von Fehler-Jobs

Die Klasse RestartFailedJob erwartet aus der Zielstruktur des Management-Profils eine Liste der Jobnummern, die neu gestartet werden sollen. Jede Jobnummer muss dabei allein in einer Zeile stehen. Die Klasse erwartet keine Konfigurationsdatei.

Wenn in der Liste der Jobnummern Zahlen stehen, die nicht der Jobnummer eines aktuellen Fehlereintrags im Control Center entsprechen, werden diese ignoriert. Die Klasse kann also nur tatsächliche als Fehler klassifizierte Jobs nachverarbeiten.

Nach dem erfolgreichen Neustart eines Jobs wird dieser aus der Fehlerliste im Control Center entfernt. Das Job-Log des Zielprofils erhält für Phase 1 einen Hinweis, dass der Restart durch den Cron Job erfolgte. Als Zusatzinfo dieses Log-Eintrags wird das Löschen des Fehlers mit Zeitstempel eingetragen.

Durch Aktivieren des Loggings für Phase 6/Custom des Management-Profils, kann man weiter Detailinformationen erhalten.