Protokolle für Java-Stapeljobs anzeigen

Wenn Sie Java-Stapeljobs in WebSphere Application Server Liberty ausführen, wird für jeden Job ein Protokoll geschrieben.

Die Protokolle werden in der folgenden Verzeichnisstruktur erstellt:

Protokollverzeichnis/joblogs/Jobname/Datum/instance.Jobinstanz-ID/execution.Ausführungs-ID

Achtung: Die Variable Jobname ist das Attribut id des Elements job im JSL-Dokument (XML). Es besteht nicht unbedingt ein Zusammenhang mit dem Dateinamen der JSL-Datei.
Die Benennung der Protokolle beginnt mit part.1.log und rotiert bei Bedarf zu neuen Protokollabschnitten (part). Standardmäßig enthält das Jobprotokoll alle Nachrichten und Traceinformationen, die auf dem Server von dem Thread protokolliert werden, der die Jobausführung übernimmt. Eine Ausgabe, die nicht im Framework java.util.logging protokolliert wird, wird nicht erfasst.
Wichtig: Wenn kein neuer Protokollabschnitt erstellt werden kann, versucht der Stapel, die Verarbeitung ohne Protokoll oder mit dem aktuellen Protokollabschnitt fortzusetzen.

Weitere Informationen zum Abrufen oder Löschen von Jobprotokollen mit der REST-API finden Sie in der Dokumentation zur REST-API-Verwaltung.

Wichtig: Wenn Sie die API log4j verwenden, können Anwendungen, die das Framework "log4j" verwenden, über org.apache.log4j.jul.JULAppender an der Stapeljobprotokollierung teilnehmen. Der JULAppender leitet log4j-Protokolldatensätze an das Framework java.util.logging weiter, wo sie für die Jobprotokollierung erfasst werden.

Jobprotokollierung konfigurieren

Die Protokollierung von Stapeljobs kann mit dem Konfigurationselement <batchJobLogging> konfiguriert werden: <batchJobLogging enabled="true" maxRecords="1000" />.

Das Attribut maxRecords gibt die Anzahl der Datensätze an, die in einen Jobprotokollabschnitt geschrieben werden, bevor die Datensätze im nächsten Abschnitt fortgesetzt werden.

Die Stapelfunktion verwendet eine Protokollfunktion (Logger) mit dem Namen com.ibm.ws.batch.JobLogger, um bestimmte Stapelnachrichten nur im Jobprotokoll aufzuzeichnen. Beispiele hierfür sich Nachrichten zum Lebenszyklus und Prüfpunktnachrichten. Die Protokollfunktion schreibt keine Nachrichten in das Serverprotokoll. Standardmäßig ist die Protokollfunktion für Nachrichten der Ebene Level.FINE aktiviert. Sie können die Ebene der Protokollfunktion konfigurieren, indem Sie sie in der Tracespezifikation des Servers festlegen, z. B. <logging traceSpecification="*=info:com.ibm.ws.batch.JobLogger=all" />.

Protokollnachrichten, die vom Job-Thread geschrieben werden, einschließlich der Nachrichten, die von der Laufzeit und vom Anwendungscode geschrieben werden, werden sowohl in das Jobprotokoll als auch in das Serverprotokoll geschrieben.

Die Dateien System.out und System.err werden nur in das Serverprotokoll, jedoch nicht in das Jobprotokoll geschrieben.

Partitionierte Schritte

Partitionierte Schritte haben Unterverzeichnisse für die einzelnen Partitionen. Die Protokolldateien im Verzeichnis Ausführungs-ID enthalten Einträge aus dem Thread, der den Job der höchsten Ebene ausführt. Die Jobprotokolle für die Partitionen werden in der folgenden Struktur gespeichert:

Protokollverzeichnis/joblogs/Jobname/Datum/instance.Jobinstanz-ID/execution.Ausführungs-ID/Name des partitionieren Schritts/Partitionsnummer

Wichtig: Im Verzeichnis Name des partitionierten Schritts wird für jede Partition ein Verzeichnis erstellt.

Aufgeteilte Datenflüsse

Wenn eine Aufteilung des Datenflusses im Job stattfindet, werden Unterverzeichnisse erstellt, um die Ausgabe aus dem Thread jedes Datenflusses zu erfassen. Die Protokolldateien, die sich direkt unter dem Verzeichnis Ausführungs-ID befinden, enthalten Einträge aus dem Thread, der den Job der höchsten Ebene ausführt. Die Jobprotokolle für die einzelnen Datenflussthreads werden mit der folgenden Struktur gespeichert:

Protokollverzeichnis/joblogs/Jobname/Datum/instance.Jobinstanz-ID/execution.Ausführungs-ID/ID der Aufteilung/Datenfluss-ID

Wichtig: Im Verzeichnis ID der Aufteilung wird für jeden Datenfluss ein Verzeichnis erstellt.

Jobprotokollereignisse

Sind Stapeljobereignisse aktiviert, werden Jobprotokollereignisse veröffentlicht, wenn ein Jobprotokollabschnitt abgeschlossen und ein Job beendet wird (Status stopped, failed oder completed). Die Jobprotokollereignisnachrichten enthalten mehrere JSON-Eigenschaften, die Sie beim Identifizieren der Nachricht mit dem tatsächlichen Jobprotokolldateiinhalt unterstützen.

Wichtig: Die JSON-Eigenschaften sind Teil des JMS-Nachrichtenhauptteils und können durch Konvertieren des Nachrichtentexts in ein JSON-Objekt und durch Extrahieren der spezifischen JSON-Eigenschaft aus diesem Objekt abgerufen werden.
Das folgende Beispiel veranschaulicht das Abrufen der Eigenschaft für den Jobprotokollinhalt.
//Abgerufene Jobprotokollereignisnachricht
Message msg
//Nachricht in eine Textnachricht konvertieren
TextMessage txtMsg = (TextMessage) msg;
//Text in der Nachricht in ein JSON-Objekt konvertieren
JsonObject jobLogEventObject = Json.createReader(new StringReader(txtMsg.getText())).readObject();
//Jobprotokolltextinhalt als Beispiel aus dem JSON-Objekt extrahieren
JsonArray logContentArray = jobLogEventObject.getJsonArray("contents");

Weitere Informationen zum Aktivieren von Stapeljobereignissen finden Sie unter Veröffentlichung von Stapeljobereignissen ermöglichen.


Symbol das den Typ des Artikels anzeigt. Referenzartikel



Symbol für Zeitmarke Letzte Aktualisierung: 01.12.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rwlp_batch_view_joblog
Dateiname: rwlp_batch_view_joblog.html