Die Ereignisdatei enthält Informationen, die es dem Editor ermöglichen, in
der Quellendatei beliebige Token oder Zeilen zu lokalisieren, die zur Ausgabe
einer Nachricht geführt haben. Außerdem können Nachrichten, die auf die
erweiterte Quelle verweisen, der entsprechenden Position in einer
bestimmten Quellendatei zugeordnet werden.
Die Ereignisdatei ist gedacht, um maschinenlesbare Informationen bereitzustellen, die
für bestimmte Klassen von Tools nützlich sind.
Die Listendatei des Prozessors dagegen soll von Personen gelesen werden können.
Da die Ereignisdatei über alle Prozessoren hinweg ein gebräuchliches Format
aufweist, müssen Tools keinen prozessorspezifischen Code schreiben, um die
erforderlichen Informationen abzurufen.
Die Ereignisdatei wird sequenziell erstellt.
Jeder Prozessor hängt einfach neue Sätze an die bestehenden an.
Tritt ein wichtiges Ereignis auf, wird ein Satz in die Ereignisdatei geschrieben.
Derzeit sind die folgenden Satztypen definiert:
- Satz für Zeitmarke
- Satz für Prozessor
- Satz für Datei-ID
- Satz für Dateiende
- Satz für Fehlerinformationen
- Satz für Programm
- Satz für die Zuordnungsdefinition
- Satz für den Zuordnungsstart
- Satz für Zuordnungsende
- Satz für Rückkopplungscode
Da in dieser einzelnen Datei verschiedene Typen von Sätzen vorkommen, gibt
das erste Wort in jedem Satz den Satztyp an.
In den Syntaxdiagrammen müssen die Token durch exakt ein einziges Leerzeichen voneinander
getrennt sein.
Satz für Zeitmarke
Dieser Satz gibt an, wann die Ereignisdatei
erstellt wurde. Anhand der Zeitmarke kann die Anwendung erkennen, ob es sich um die
aktuelle Ereignisdatei handelt (ist die Zeitmarke älter als eine der im Satz für die
Datei-ID angegebenen Dateien, ist die Ereignisdatei für die betreffende Datei unter
Umständen ungültig).
Dieser Satz erscheint stets als erster Satz in der Ereignisdatei.
Anmerkung: Dieser Satz wird nicht von einem Prozessor geschrieben, sondern vom aufrufenden
Programm des ersten Prozessors.
Dadurch kann jeder Prozessor Sätze an die Ereignisdatei anhängen, ohne vorher
bestimmen zu müssen, ob die Datei vorhanden ist.
Der Satz ist wie folgt definiert:
**––– TIMESTAMP ––– Version ––– Zeitmarke ––––*|
- Version
- Die Überarbeitung dieses Satzes; sie wird für die Aufwärtskompatibilität verwendet.
Die aktuelle Version ist "1".
- Zeitmarke
- Datum und Uhrzeit der Erstellung der Ereignisdatei im Format jjjjmmtthhmmss.
Satz für Prozessor
Dieser Satz gibt an, dass ein neuer
Prozessor aufgerufen wurde.
Nach dem Satz mit der Zeitmarke folgt immer mindestens ein Satz für den Prozessor (es
können auch mehrere Sätze vorhanden sein).
Der Satz für den Prozessor ist wie folgt definiert:
**––– PROCESSOR ––– Version ––– Ausgabe-ID ––– Zeilenklasse –––*|
- Version
- Die Überarbeitung dieses Satzes; sie wird für die Aufwärtskompatibilität verwendet.
Die aktuelle Version ist "1".
- Ausgabe-ID
- Die Datei-ID einer von diesem Prozessor erstellten Ausgabedatei.
Soll die Ausgabe dieses Prozessors als Eingabe für einen anderen Prozessor verwendet
werden, gibt diese Datei-ID die betreffende Datei an, und der Satz mit der Datei-ID
folgt dann auf diesen Satz.
Handelt es sich hier um den Prozessor, der zuletzt aufgerufen wird und wird erwartet,
dass der Editor Nachrichten für diesen Prozessor anzeigt, lautet die Datei-ID 0.
- Zeilenklasse
- Methode, mit der Zeilen nummeriert werden. Geben Sie 0 an, wenn eine temporäre Datei
oder interne Datei, die eine erweiterte Quellendarstellung enthält, verwendet wird; die
Zeilennummer repräsentiert die Zeilennummer in der erweiterten Quelle.
Geben Sie 1 an, wenn die Zeilennummer die physische Zeilennummer in der im Feld
Quellendatei-ID angegebenen Quellendatei wiedergibt.
Anmerkung: Soll die Ausgabe eines einzelnen Prozessors als Eingabe für einen
anderen Prozessor dienen, sollte der Satz FILEID für die Ausgabe einen
Namen enthalten, selbst wenn die Ausgabe in keine tatsächlich vorhandene Datei gestellt
wird.
Derselbe Name sollte im Eingabesatz FILEID des Prozessors stehen, der
die Ausgabe verwendet.
Satz für Datei-ID
Dieser Satz enthält den vollständigen Namen
der verarbeiteten Quellendatei und ordnet dem Dateinamen eine ganze Zahl zu.
Für jede verarbeitete Quellendatei sollte ein Satz dieses Typs vorhanden sein (für die
Hauptquellendatei sowie alle anderen enthaltenen Quelleneinheiten (Copylib-Teildateien)
und Makros).
Anmerkung: Wird eine Datei während der Verarbeitung mehrmals aufgeführt, sollte
für jedes Vorkommen ein Datei-ID-Satz geschrieben werden.
Der Satz für die Datei-ID ist wie folgt definiert:
**––– FILEID ––– Version ––– Quellen-ID ––– Zeile ––– Länge ––––*
*––– Dateiname ––– Zeitmarke_der_Quellendatei ––– Markierung_für_temporäre_Datei ––*|
Falls der Satz mit der Datei-ID die erlaubte Satzlänge der Ereignisdatei überschreitet
(dies kann beim Kompilieren von IFS-Dateien vorkommen), folgen auf den Satz mit der
Datei-ID ein oder mehrere fortgesetzte Sätze mit Datei-IDs, und zwar im folgenden Format:
**––– FILEIDCONT ––– Version ––– Quellen-ID ––– Zeile ––– Länge ––––*
*––– Dateiname ––– Zeitmarke_der_Quellendatei ––– Markierung_für_temporäre_Datei ––*|
Beispiel:
FILEID 0 001 000000 383 /home/USER/directory/directory2/directory3/directory4asdfjkaskldjfhakjsdf haslkdjf alksjdfh laksjdf/directory5/dir9 askdjfhaksdjfhkalsjdfhlkajsdfhlajdshflkajshdflkajshdflkjahsdflkjhasdlfkjhaslkdfhalksdjfhalksdhfklashdfkashdflkahsdflkjhasdlkfhalskdfjha
FILEIDCONT 0 001 000000 000 lskfhalskdfhalsdhfalksdjfhlaksfhlasasdkjfhaksdjfhlkasjdfhlkajshdflkajshdfkjashdflkjhasdlkfhsadjkfdfhlakdshflkhs/REM1C01501.RPGLE 20030404130518 0
Die Länge sollte immer zum Bestimmen des Dateinamens verwendet werden, da
IFS-Dateinamen Leerzeichen enthalten können, wie im obigen Beispiel gezeigt.
- Version
- Die Überarbeitung dieses Satzes; sie wird für die Aufwärtskompatibilität verwendet.
Die aktuelle Version ist "1".
- Quellen-ID
- Eine als Ganzzahl ausgedrückte Dateikennung, die anstelle des Dateinamens verwendet
werden soll, um einen Fehlersatz mit der Quellendatei zu korrelieren, in der er
aufgetreten ist, ohne den zeichenorientierten Dateinamen verwenden zu müssen.
Verwenden Sie Null, wenn die Eingabedatei nicht bekannt ist, beispielsweise wenn Eingabe
aus einem Benutzerexit herrührt.
- Zeile
- Zeilennummer der Quellendatei, wenn auf eine neue Datei verwiesen wird, oder Null,
wenn auf die Datei nicht von einer anderen Datei verwiesen wird.
- Länge
- Länge des Dateinamens; die maximale Länge beträgt 255. In einem Satz FILEIDCONT
beträgt die Länge stets Null, da die Länge nur durch den Satz mit der Datei-ID
bestimmt wird.
- Dateiname
- Bei diesem Namen sollte es sich um den vollständig qualifizierten Namen der
physischen Datei handeln.
Ist keine vorhanden (beispielsweise weil der Benutzer den Text bereitstellt) oder kann
der Name nicht bestimmt werden, sollten Sie hier eine Nullzeichenfolge verwenden.
Der Name darf die Variable Servername enthalten.
- Zeitmarke_der_Quellendatei
- Die Zeitmarke der Quellendatei.
- Markierung_für_temporäre_Datei
- Dieses Feld wird auf 1 gesetzt, um anzugeben, dass es sich bei der
Quelle um eine temporäre Datei handelt; andernfalls wird es auf 0
gesetzt. Temporäre Quellendateien können nur im Anzeigemodus geöffnet werden.
Derzeit wird diese Markierung verwendet, um auf Ausgabe zu verweisen, die vom
SQL-Vorprozessor generiert wird.
Satz für Dateiende
Dieser Satz gibt an, dass eine enthaltene
Datei beendet ist.
Anhand dieses Satzes kann die Verschachtelung von enthaltenen Dateien bestimmt werden,
damit ein Programm zur Kette der enthaltenen Dateien zurücknavigieren kann.
Dies ist hilfreich, wenn die enthaltene Datei nicht genügend Informationen enthält,
anhand derer die Fehlerursache bestimmt werden könnte.
Der Satz für das Dateiende ist wie folgt definiert:
**––– FILEEND ––– Version ––– Datei-ID ––– Erweiterung –––*|
- Version
- Die Überarbeitung dieses Satzes; sie wird für die Aufwärtskompatibilität verwendet.
Die aktuelle Version ist "1".
- Datei-ID
- Die ID dieser Datei.
- Erweiterung
- Anzahl der erweiterten Quellenzeilen in dieser Datei, einschließlich aller
enthaltenen Verschachtelungen und Makroerweiterungen.
Anmerkung: Für jeden Datei-ID-Satz muss ein entsprechender Dateiendesatz
vorhanden sein, mit Ausnahme der Datei-ID, die auf den Satz für den Prozessor folgt und
die Ausgabedatei angibt.
Satz für Fehlerinformationen
Ein Satz dieses Typs enthält
Informationen, die erforderlich sind, um ein Token oder eine Zeile zu lokalisieren,
das/die eine Nachricht in der Quellendatei verursacht; außerdem enthält er genügend
Informationen, damit die Nachricht selbst angezeigt werden kann.
Diese Informationen schließen Positionsinformationen (z. B. in welcher Datei und Zeile
der Fehler aufgetreten ist) und fehlerbezogene Informationen (beispielsweise Nummer, Text
und Bewertung der Nachricht) ein.
Der Satz für die Fehlerinformationen ist wie folgt definiert:
**––– ERROR ––– Version ––– Datei-ID ––– Annotationsklasse –––*
*––– Anweisungszeile ––– Zeile_mit_Fehleranfang ––– Token-Start ––– Zeile_mit_Fehlerende ––– Token-Ende –––*
*––– Nachrichten-ID ––– Zeichen_für_Bewertungscode ––– Zahl_für_Bewertungsstufe ––– Länge ––– Nachricht –––*|
- Version
- Die Überarbeitung dieses Satzes; sie wird für die Aufwärtskompatibilität verwendet.
Die aktuelle Version ist "1".
- Datei-ID
- Datei-ID-Nummer der Quellendatei, die diesen Fehler enthält.
- Annotationsklasse
- Gibt an, an welche Stelle in einer Nachrichtenliste diese Nachricht platziert werden
soll, wenn die Ereignisdatei im Fenster 'Fehlerliste' geladen wird.
Die Positionen sind wie folgt definiert:
- 0
- Listenanfang. Wird in der Regel für sehr wichtige Nachrichten verwendet, die
keiner bestimmten Zeile in einer Datei zugeordnet sind.
Die Sortierreihenfolge für mehrere Vorkommen von Nachrichten dieses Typs ist nicht
definiert.
Da diesem Fehlertyp in der Regel kein Text entspricht, kann er im Editierfenster nicht
lokalisiert werden.
- 1
- Listenmitte. Wird im Allgemeinen für Nachrichten verwendet, die einer einzelnen
Zeile oder einem einzelnen Token zugeordnet sind.
Bei mehrfach vorkommenden Nachrichten dieses Typs werden diese nach Zeile und
Spaltennummer sortiert.
- 2
- Listenende. Wird in der Regel für weniger wichtige Nachrichten verwendet, die keiner
bestimmten Zeile in einer Datei zugeordnet sind.
Die Sortierreihenfolge für mehrere Vorkommen von Nachrichten dieses Typs ist nicht
definiert.
Da diesem Fehlertyp in der Regel kein Text entspricht, kann er im Editierfenster nicht
lokalisiert werden.
- Anweisungszeile
- Zeilennummer (in der Quellendatei, der die oben genannte Quellendatei-ID-Nummer
zugeordnet ist) der ersten Zeile der Anweisung, die den Fehler enthält.
Diese ist erforderlich für den Fall, dass der Fehler nicht in der ersten Zeile der
Anweisung auftritt.
Diese Nummer wird mit Hilfe des Felds Zeilenklasse interpretiert.
- Zeile_mit_Fehleranfang
- Zeilennummer (in der Quellendatei, der die oben genannte Quellendatei-ID-Nummer
zugeordnet ist) der Zeile, in der der Fehler anfängt.
Diese Nummer wird mit Hilfe des Felds Zeilenklasse interpretiert.
- Token-Start
- Spalte (oder Zeichen in der Zeile), in der das fehlerhafte Token anfängt.
Sind diese Informationen nicht verfügbar, führt ein Nullwert hier dazu, dass die gesamte
Zeile als Fehler markiert wird.
- Zeile_mit_Fehlerende
- Zeilennummer (in der Quellendatei, der die oben genannte Quellendatei-ID-Nummer
zugeordnet ist) der Zeile, die das Fehlerende enthält.
Diese Nummer wird mit Hilfe des Felds Zeilenklasse interpretiert.
- Token-Ende
- Spalte (oder Zeichen in der Zeile), in der das fehlerhafte Token endet.
Sind diese Informationen nicht verfügbar, führt ein Nullwert hier dazu, dass die gesamte
Zeile als Fehler markiert wird.
- Nachrichten-ID
- Nachrichten-ID (z. B. AMPX999).
- Zeichen_für_Bewertungscode
- Buchstabe für den Bewertungscode (I, W,
E, S oder T).
- Zahl_für_Bewertungsstufe
- Zahl für die Bewertungsstufe. Bei manchen Systemen handelt es sich hierbei um den
Rückkehrcode, der dem Buchstaben für den Bewertungscode zugeordnet ist (z. B.
I=0, W=4,
E=8, S=12,
T=16).
- Länge
- Die tatsächliche Länge des Nachrichtentexts (nächstes Feld).
Die maximale Länge beträgt 1024 Byte.
- Nachricht
- Der Nachrichtentext der Fehlernachricht. Das Ersetzen von Feldern sollte bereits
durchgeführt worden sein.
Anmerkung: Fehler, die sich über mehrere Dateien erstrecken, werden unter
Umständen nicht ordnungsgemäß markiert, da der Fehlersatz nur die Angabe einer einzigen
Datei-ID zulässt.
Satz für Programm
Dieser Satz gibt ein neues Programm in
derselben Quellendatei, die gerade kompiliert wird, an.
Er wird verwendet, wenn in einer einzigen Datei mehrere Programme enthalten sind.
Wird dieser Satz geschrieben, wird davon ausgegangen, dass die erweiterte
Quellenzeile bei 1 neu beginnt.
Es ist nicht erforderlich, das erste Programm in der Datei zu kennzeichnen.
Anmerkung: Alle Fehlersätze (ERROR) für ein Programm müssen nach dem Satz
PROGRAM für das betreffende Programm folgen und vor den Sätzen
PROGRAM anderer Programme stehen.
Der Satz für das Programm
ist wie folgt definiert:
**––– PROGRAM ––– Version ––– Zeile –––*|
- Version
- Die Überarbeitung dieses Satzes; sie wird für die Aufwärtskompatibilität verwendet.
Die aktuelle Version ist "1".
- Zeile
- Die Position in der Datei, die von diesem Programm gestartet wird.
Satz für die Zuordnungsdefinition
Dieser Satz gibt an, dass ein
Makro definiert wird.
Anhand dieses Satzes können Fehler zu einer Makrodefinition zurückverfolgt werden,
anstatt sie zu der Stelle zurückzuverfolgen, an der das Makro verwendet wird.
Der Satz für die Zuordnungsdefinition ist wie folgt definiert:
**––– MAPDEFINE ––– Version ––– Makro-ID ––– Zeile ––– Länge ––– Makroname –––*|
- Version
- Die Überarbeitung dieses Satzes; sie wird für die Aufwärtskompatibilität verwendet.
Die aktuelle Version ist "1".
- Makro-ID
- Ganzzahl, mit der diese Makrodefinition angegeben wird.
Sie sollte innerhalb einer bestimmten Datei sequenziell erhöht werden.
- Zeile
- Physische Zeile in der aktuellen Datei, in der die Makrodefinition beginnt.
- Länge
- Länge des Makronamens.
- Makroname
- Der Name des Makros, das gerade definiert wird.
Satz für den Zuordnungsstart
Dieser Satz gibt an, dass die
Quellenerweiterung gestartet wird.
Er wird verwendet, wenn eine Textersetzung durchgeführt wird.
Der Satz für den Zuordnungsstart ist wie folgt definiert:
**––– MAPSTART ––– Version ––– Makro-ID ––– Zeile –––*|
- Version
- Die Überarbeitung dieses Satzes; sie wird für die Aufwärtskompatibilität verwendet.
Die aktuelle Version ist "1".
- Makro-ID
- Kennung für ein Makro, das in einem Satz für die Zuordnungsdefinition angegeben wird.
- Zeile
- Physische Zeile in der aktuellen Datei, in der die Erweiterung (beispielsweise
der Makroaufruf) beginnt.
Satz für Zuordnungsende
Dieser Satz gibt an, dass die
Quellenerweiterung abgeschlossen ist.
Er wird am Ende einer Textersetzung verwendet, um anzugeben, wie viele Zeilen erstellt
wurden.
Der Satz für das Zuordnungsende ist wie folgt definiert:
**––– MAPEND ––– Version ––– Makro-ID ––– Zeile ––– Erweiterung –––*|
- Version
- Die Überarbeitung dieses Satzes; sie wird für die Aufwärtskompatibilität verwendet.
Die aktuelle Version ist "1".
- Makro-ID
- Kennung für ein Makro, das in einem Satz für die Zuordnungsdefinition angegeben wird.
- Zeile
- Physische Zeile in der aktuellen Datei, in der die Erweiterung (beispielsweise der
Makroaufruf) beginnt.
- Erweiterung
- Anzahl Zeilen, die aus dieser Makroerweiterung resultieren, einschließlich aller
verschachtelten Erweiterungen.
Satz für Rückkopplungscode
Dieser Satz enthält den Rückkehr-
und Ursachencode für den Punkt, an dem die Kompilierung gestoppt wurde.
Der Satz für den Rückkopplungscode ist wie folgt definiert:
**––– FEEDBACK ––– Version ––– Rückkehrcode ––– Ursachencode –––*|
- Version
- Die Überarbeitung dieses Satzes; sie wird für die Aufwärtskompatibilität verwendet.
Die aktuelle Version ist "1".
- Rückkehrcode
- Der vom Prozessor zurückgegebene Rückkehrcode.
- Ursachencode
- Der vom Prozessor zurückgegebene Ursachencode.
(C) Copyright IBM Corporation 1992, 2006. All Rights Reserved.