Transparenz

Was JOX zu jedem Lauf weiß.

Wenn ein Job fehlschlägt oder die Revision wissen will, was vor zwei Jahren in Produktion lief, hängt es von der Tiefe der Persistenz ab, ob Sie sofort eine Antwort haben oder stundenlang suchen. JOX persistiert jeden Lauf transaktional im Repository: Status, aufgelöste Werte, Vor/Nach-Zustände, parallel-laufende Activity und versendete Notifications. SQL-Statements sind grundsätzlich erfasst; OS-Job-Output ist pro Template konfigurierbar.

Pro Lauf erfasst

Was zu jedem Lauf gespeichert wird.

Status

Erfolg oder Fehler, binär gewertet.

Jeder Lauf wird mit präzisen Zeitstempeln transaktional im Repository persistiert: Start, Ende, Dauer, Status. Der Returncode wird binär gewertet: 0 = OK, alles andere = Fehler. Das hält die Template-Entwicklung einfach und schnell, weil weder Sonderbehandlungen von Endcodes noch gepflegte Mapping-Tabellen nötig sind.

OS-Job-Output

stdout / stderr optional, Umgebungsvariablen immer.

stdout und stderr werden pro Job-Template über Load Output aktivierbar im JOX-Repository persistiert, und zwar ungekürzt statt nur der "letzten N Zeilen". Standardmäßig ist das ausgeschaltet; das Log-File bleibt dann auf dem Server. Die Umgebungsvariablen jedes OS-Job-Laufs werden dagegen immer erfasst, inklusive der von JOX vordefinierten Variablen wie JOX_JOB_ID, die jedem Lauf eine eindeutige, nachvollziehbare Identität geben.

SQL-Detail

Alle Statements, Daten je nach Statement-Typ.

Bei SQL-Actions, SQL-Pipes und SQL-Extracts werden alle ausgeführten Statements persistiert, und zwar in der Form, die nach der Variablen-Auflösung tatsächlich an die DB ging, nicht als Code aus dem Template. Die Daten sehen Sie direkt in der JOX-GUI:

  • SQL-Actions mit SELECT: Resultate erscheinen automatisch.
  • SQL-Pipes: pro Zwischenergebnis konfigurierbar (Load Data).
  • SQL-Extracts: konfigurierbar mit Zeilen-Limit (Load Data + Record Number Limit).
Auflösung

Die tatsächlich verwendeten Pfade, Accounts und Parameter.

System Functionalities sind die abstrakten Funktionalitäts-Bindungen eines Templates, etwa bin_dir oder billing_schema. Sie zeigen pro Location × Area auf konkrete Verzeichnisse oder DB-Accounts. Zusätzlich werden klassische JOX-Variablen (z.B. Order-Parameter) zur Run-Time aufgelöst. Der Run-Record zeigt statt der Namen die konkreten Werte, also Pfad, Account und Parameter, die tatsächlich verwendet wurden.

Vor / Nach

Geänderte Dateien und DB-Zustand vor und nach dem Lauf.

Erfasst wird, welche Dateien der Lauf erzeugt oder geändert hat und welcher Datenbankzustand unmittelbar vor und nach der Ausführung sichtbar war. Damit ist neben dem Output auch die Auswirkung des Laufs dokumentiert. Das ist wichtig für spätere Audits und für die Entscheidung, ob ein Lauf wiederholt wird.

Activity Context

Was sonst noch parallel zu diesem Lauf lief.

Aus jedem Lauf-Detail springen Sie direkt in den Activity Report für genau dieses Zeitfenster und sehen alle Jobs, die z.B. parallel auf derselben Location oder in derselben Area liefen. Das ist oft die wichtigste Information, wenn ein Job unter Last anders reagiert als isoliert.

Notifications

Welche Mails an welche Empfänger versendet wurden.

Jede E-Mail, die JOX als Reaktion auf den Lauf versendet hat, wird mit Empfänger-Liste und vollständigem Body persistiert. Bei area-abhängigen Verteilern sehen Sie die konkrete Auflösung, also wer tatsächlich benachrichtigt wurde.

Mit JOX haben wir einen äußerst zuverlässigen Scheduler mit deterministischen Ergebnissen, der aufgrund der Historisierung von Abläufen und Ergebnissen die Wirtschaftsprüfer mehr als zufriedenstellt.

In der Praxis

Drei Beispiele aus dem Betrieb.

Forensik: fehlgeschlagener Billing-Lauf und Wiederanlauf

Der Billing-Lauf von gestern Nacht ist um 02:17 abgebrochen. Sie öffnen die Order in JOX, statt im Verzeichnis nach Log-Files zu suchen. Der fehlgeschlagene Job ist rot markiert und sofort zu finden, sein Output ist vollständig vorhanden. Die letzte Zeile lautet "Segmentation fault", und es gibt eine Core-Datei, ein sehr seltenes Fehlerbild. Ein Blick in die JOX-Gruppe "Server Configuration Checks", in die Order von gestern Abend auf der für Billing zuständigen Location, zeigt, dass gestern ein Betriebssystem-Patch eingespielt wurde, der eine vom Billing-Modul verwendete Lib ersetzt hat. Nach Wiederherstellung der Lib werden die Jobs der Billing-Order, die ab dem Upgrade-Zeitpunkt gelaufen sind, rekursiv wiederholt, einschließlich des Billing-Runs selbst.

Compliance: externe Revisoren stellen Fragen

"Welche Migrations-Skripte sind im April 2024 auf der Production-DB ausgeführt worden, und wer wurde benachrichtigt?" Der Activity Report mit archivierten Jobs zeigt die Migrations-Order. Per Restore ist sie in ein paar Sekunden aus dem Archiv geholt. Vorhanden sind Status, Output, aufgelöste Werte, die Anzahl der durch SQL geänderten Rows und der Mail-Trail.

Replay: einen historischen Lauf reproduzieren

Ein Kunde beanstandet eine Abrechnung aus dem letzten Quartal. Sie wollen den Lauf identisch reproduzieren. Dazu kopieren Sie die JOX-Order und lassen sie laufen; Area, Locations und Parameter werden automatisch übernommen.

Gespräch

Demo an Ihrem Anwendungsfall.

Eine Demo zeigt das Lauf-Detail anhand eines konkreten Use-Cases aus Ihrem Umfeld. Dafür genügt eine kurze Mail mit dem Anwendungsfall; wir zeigen Ihnen die Detailtiefe der Forensik dann an Ihrem Beispiel.