File I/O status in sysVar.errorCode for iSeriesC

If the V60ExceptionCompatibility program property is set to YES, the sysVar.errorCode system variable contains the status code for file I/O in the iSeriesC environment.
For generated COBOL, use the sysCodes build descriptor option to control the codes that are returned for file I/O errors. The sysCodes build descriptor option does not affect the EGL I/O error values.

The following table shows the correspondence between status key values, EGL I/O error values, and sysVar.errorCode. There are many COBOL File Status Key values that might correspond to a single sysVar.errorCode.

Table 1. Correspondence between Status Key Values, I/O error values, and sysVar.errorCode
errorCode (sysCodes = "YES"), COBOL File Status Key values EGL I/O error value errorCode (sysCodes = "NO")
00,05,07 [no error] 000
02 duplicate, ioError 103
04 (Variable-length record) [no error] 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 (access method not relative or relative key not 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
For all other COBOL File Status Key values, sysVar.errorCode is set based on the type of request as shown in the following table:
Type of request EGL I/O error value errorCode (sysCodes = "NO")
OPEN ioError, hardIOError 500
CLOSE, UNLOCK ioError, hardIOError 989
READ, START ioError, hardIOError 987
WRITE ioError, hardIOError 988

Feedback