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.
| 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 |