errorCode

Die Systemvariable 'sysVar.errorCode' enthält Fehlerinformationen für Programme, die im V6-Ausnahmemodus ausgeführt werden.

EGL setzt die Systemvariable 'sysVar.errorCode' in folgenden Situationen:

Wenn Sie sich nicht im V6-Ausnahmemodus befinden, ist der Wert von 'sysVar.overflowIndicator' nicht definiert. Führen Sie in diesem Fall keine Aktionen auf der Basis des Werts dieser Variablen aus.

Ist die Aufruf-, Ein-/Ausgabe- oder Systemfunktion erfolgreich, setzt EGL den Wert von 'sysVar.errorCode' auf 00000000. Wenn Sie COBOL generieren, lesen Sie die Informationen unter 'Kompatibilität' in diesem Thema.

Kenndaten

Kenndaten von 'sysVar.errorCode':
Basiselementtyp (primitiver Typ)
CHAR
Datenlänge
8
Wert übergreifend für Anweisung 'converse' im Segmentmodus speichern?
Ja

Beispiel

Im folgenden Beispiel wird die Variable 'sysVar.errorCode' geprüft:

  if (sysVar.errorCode == "00000008")
	  exit program;
  end

Kompatibilität

Tabelle 1. Hinweise zur Kompatibilität für 'sysVar.errorCode'
Plattform Problem
COBOL-Generierung
Die Erstellungsdeskriptoroption 'sysCodes' wirkt sich wie folgt auf den Wert von 'sysVar.errorCode' aus:
  • Wenn Sie 'sysCodes' auf YES setzen und eine E/A-Operation für einen indexierten Datensatz, einen WebSphere MQ-Datensatz, einen relativen Datensatz oder einen sequenziellen Datensatz ausführen, enthält 'sysVar.errorCode' einen Rückgabecode, der speziell für die verwendete Debug- oder Laufzeitumgebung und den verwendeten Ressourcentyp (wie beispielsweise eine VSAM-Datei) gilt. Stützen Sie sich bei der Interpretation dieses Codes auf das Handbuch zur jeweiligen Ressource.
  • Wenn Sie 'sysCodes' auf NO setzen, werden die Systemrückgabecodes in EGL-Rückgabecodes konvertiert. Dadurch können Programme, die unter CSP (Cross System Product) oder VisualAge Generator entwickelt wurden, dieselben Rückgabecodes empfangen wie in EGL.
CICS

Bei allen CICS-Systemen (einschließlich CICS für z/OS) hängt die Bedeutung des Werts von 'sysVar.errorCode' vom Format dieses Werts ab.

Wenn der Wert von 'sysVar.errorCode' im Format RSnnnnnn vorliegt, finden Sie entsprechende Informationen unter nnnnnn im Abschnitt mit den Rückgabecodes in der Dokumentation für Rational COBOL Runtime for zSeries.

Andernfalls werden die Zeichen des Werts von 'sysVar.errorCode' vom CICS-Schnittstellenblock EXEC abgeleitet. Die folgenden Regeln gelten auch für fernen Dateizugriff:
  • Die Zeichen 1 und 2 von 'sysVar.errorCode' enthalten die hexadezimale Darstellung des ersten Byte von EIBFN.
  • Die Zeichen 3 bis 8 enthalten die hexadezimale Darstellung der Byte 0-2 von EIBRCODE.
Wenn eine E/A-Operation mit einem CICS-Fehler vom Typ SYSIDERR (einem Problem beim Zugriff auf die ferne Datei) endet, wird einer der folgenden Werte in die ersten 6 Zeichen von 'sysVar.errorCode' kopiert:
06D004
Nicht der Name des Systemeintrags
06D008
Nicht funktionierender Link
06D00C
Name ist CICS nicht bekannt
IMS BMP

Wenn der Wert von 'sysVar.errorCode' im Format RSnnnnnn vorliegt, finden Sie entsprechende Informationen unter nnnnnn im Abschnitt mit den Rückgabecodes in der Dokumentation für Rational COBOL Runtime for zSeries.

Der folgende Dateityp ist der einzige Dateityp, der ausschließlich in IMS BMP vorkommt. Informationen zu allen anderen Dateitypen finden Sie unter dem Eintrag für z/OS Batch weiter unten in dieser Tabelle.
IMS-Nachrichtenwarteschlange
'sysVar.errorCode' enthält den DL/I-Statuscode im Anschluss an eine Ein-/Ausgabefunktion. Die letzten 6 Zeichen von 'sysVar.errorCode' sind Leerzeichen.
IMS/VS Die einzigen Dateien, die in dieser Umgebung verwendet werden können, sind serielle Dateien, die IMS-Nachrichtenwarteschlangen zugeordnet sind. 'sysVar.errorCode' enthält den DL/I-Statuscode im Anschluss an eine Ein-/Ausgabefunktion für eine dieser Dateien. Die letzten 6 Zeichen von 'sysVar.errorCode' sind Leerzeichen.
z/OS Batch

Wenn der Wert von 'sysVar.errorCode' im Format RSnnnnnn vorliegt, finden Sie entsprechende Informationen unter nnnnnn im Abschnitt mit den Rückgabecodes in der Dokumentation für Rational COBOL Runtime for zSeries.

Andernfalls sind die Zeichen in 'sysVar.errorCode' dateitypspezifisch:
GSAM
'sysVar.errorCode' enthält den DL/I-Statuscode im Anschluss an eine Ein-/Ausgabefunktion. Die letzten 6 Zeichen von 'sysVar.errorCode' sind Leerzeichen.
SEQ
Die beiden ersten Zeichen von 'sysVar.errorCode' enthalten den/die Schlüsselwert(e) für den COBOL-Status. Die übrigen sechs Zeichen sind Nullen.
SEQRS
Wenn eine dynamische Zuordnung fehlschlägt, enthalten die ersten drei Byte von 'sysVar.errorCode' den Wert S99 (für SVC 99, dynamische Zuordnung). Byte vier ist der Rückgabecode von SVC 99 in Hexadezimalschreibweise, und die Byte fünf bis acht enthalten die Haxadezimalangabe des Fehlerursachencodes.

Tritt bei einem Lesevorgang eine Dateiendebedingung auf, enthält 'sysVar.errorCode' den Rückgabecode "00000004".

Schlägt eine Anweisung OPEN fehl, enthält 'sysVar.errorCode' den Rückgabecode "00000008".

Wenn beim Lesen, Schreiben oder Schließen ein Fehler auftritt, enthält 'sysVar.errorCode' den Rückgabecode "00000012".

VSAM
'sysVar.errorCode' enthält die folgenden Informationen:
  • 2 Zeichen für den/die Schlüsselwert(e) für den COBOL-Status.
  • 2 Zeichen für den COBOL-VSAM-Rückgabecode, bei dem es sich um den VSAM-Rückkopplungscode handelt.
  • 1 Zeichen für den COBOL-VSAM-Funktionscode, bei dem es sich um den VSAM-Komponentencode handelt.
  • 3 Zeichen für den COBOL-VSAM-Rückkopplungscode, bei dem es sich um den VSAM-Ursachencode handelt.
VSAMRS
Wenn eine dynamische Zuordnung fehlschlägt, enthalten die ersten drei Byte von 'sysVar.errorCode' den Wert S99 (für SVC 99, dynamische Zuordnung). Byte vier ist der Rückgabecode von SVC 99 in Hexadezimalschreibweise, und die Byte fünf bis acht enthalten die Haxadezimalangabe des Fehlerursachencodes.

Tritt beim Öffnen oder Schließen einer Datei ein Fehler auf, enthalten die beiden ersten Byte von 'sysVar.errorCode' den Fehlercode des VSAM-Programmsteuerblocks (ACB) in Hexadezimalschreibweise, und die übrigen sechs Zeichen sind Nullen.

In anderen Fällen enthält 'sysVar.errorCode' die folgenden Informationen:
  • 2 Nullzeichen.
  • 2 Zeichen für den COBOL-VSAM-Rückgabecode, bei dem es sich um den VSAM-Rückkopplungscode handelt.
  • 1 Zeichen für den COBOL-VSAM-Funktionscode, bei dem es sich um den VSAM-Komponentencode handelt.
  • 3 Zeichen für den COBOL-VSAM-Rückkopplungscode, bei dem es sich um den VSAM-Ursachencode handelt.

Feedback