Datei-E/A-Status in sysVar.errorCode für iSeriesC

Wenn die Programmeigenschaft 'V60ExceptionCompatibility' auf YES festgelegt ist, enthält die Systemvariable 'sysVar.errorCode' den Statuscode für die Datei-Ein-/Ausgabe in der iSeriesC-Umgebung.

Verwenden Sie für generierte COBOL die Builddeskriptoroption 'sysCodes' zum Steuern des Codes, der für E/A-Fehler in Dateien zurückgegeben wird. Die Builddeskriptoroption 'sysCodes' hat keine Auswirkungen auf die Fehlerwerte von EGL-Ein-/Ausgaben.
  • Wenn Sie die Builddeskriptoroption 'sysCodes' auf YES festlegen, enthält 'sysVar.errorCode' systemabhängige Rückgabecodes fürs Zugriffsmethoden. Dies ist der Statusschlüssel für die COBOL-Datei. Weitere Informationen zu den Werten für die Statusschlüssel von COBOL-Dateien finden Sie im i5/OS Information Center. Nähere Informationen zum Format von 'sysVar.errorCode' finden Sie im Kapitel errorCode.
  • Wenn Sie hingegen die Builddeskriptoroption 'sysCodes' auf NO festlegen, enthält 'sysVar.errorCode' Rückgabecodes von der Ein-/Ausgabe-Routine des EGL-Laufzeitservices, mit der der E/A-Fehler in IBM® i entdeckt wurde.

In der folgenden Tabelle sind die Zusammenhänge zwischen den Werten der Statusschlüssel, EGL-E/A-Fehlerwerte und 'sysVar.errorCode' aufgeführt. Es gibt viele Statusschlüsselwerte für COBOL-Dateien, die einem einzelnen 'sysVar.errorCode' entsprechen können.

Tabelle 1. Zusammenhang zwischen Statusschlüsselwerten, E/A-Fehlerwerten und 'sysVar.errorCode'
errorCode (sysCodes = "YES"), Statusschlüsselwerte für COBOL-Dateien EGL-E/A-Fehlerwert errorCode (sysCodes = "NO")
00,05,07 [kein Fehler] 000
02 duplicate, ioError 103
04 (Datensatz variabler Länge) [kein Fehler] 000
04 invalidFormat, ioError, hardIOError 220
10,14,46 endOfFile, ioError 102
22 unique, ioError 206
23 (START) endOfFile, ioError 102
23 noRecordFound, ioError 205
24,34 (Zugriffsmethode nicht relativ oder relativer Schlüssel nicht 0) full, ioError, hardIOError 25A
35 fileNotFound, ioError, hardIOError 251
38 fileNotAvailable, ioError, hardIOError 218
39,95 invalidFormat, ioError 220
9D deadlock, ioError, hardIOError 381
Bei allen anderen Statusschlüsselwerten für COBOL-Dateien basiert 'sysVar.errorCode' auf dem Anforderungstyp, wie in der folgenden Tabelle aufgeführt:
Anforderungstyp EGL-E/A-Fehlerwert errorCode (sysCodes = "NO")
OPEN ioError, hardIOError 500
CLOSE, UNLOCK ioError, hardIOError 989
READ, START ioError, hardIOError 987
WRITE ioError, hardIOError 988