errorCode

sysVar.errorCode contains error information for programs that run in V6 exception mode.
EGL sets the sysVar.errorCode system variable in the following situations:

If you are not running in V6 exception mode, the value of sysVar.errorCode is undefined. Do not take action based on the value of this variable.

If the call, I/O, or system function is successful, EGL sets sysVar.errorCode to 00000000. If you generate COBOL, see "Compatibility" in this topic.

Characteristics

sysVar.errorCode has the following characteristics:
Primitive type
CHAR
Data length
8
Value saved across segmented converse?
Yes

Example

The following example checks the sysVar.errorCode variable.

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

Compatibility

Table 1. Compatibility considerations for sysVar.errorCode
Platform Issue
COBOL generation
The sysCodes build descriptor option affects the value of sysVar.errorCode as follows:
  • If you set sysCodes to YES and perform an I/O operation on an indexed, WebSphere® MQ, relative, or sequential record, sysVar.errorCode contains a return code that is specific to the debug or runtime environment and the type of resource (such as a VSAM file). To interpret this code, refer to the appropriate manual for the resource.
  • If you set sysCodes to NO, the system return codes are converted to EGL return codes. This allows programs that were developed under Cross System Product (CSP) or VisualAge® Generator to receive the same return codes as in CSP.
CICS®

For all CICS systems (including CICS for z/OS®), the meaning of the sysVar.errorCode value depends on the format of that value.

If sysVar.errorCode is in the form RSnnnnnn, you can get details by looking under nnnnnn in the return codes section of the documentation for Rational® COBOL Runtime for zSeries®.

Otherwise, the characters of sysVar.errorCode are derived from the CICS EXEC Interface Block. These rules also apply to remote file access:
  • Characters 1 and 2 of sysVar.errorCode contain the hexadecimal representation of the first byte of the EIBFN.
  • Characters 3 through 8 contain the hexadecimal representation of bytes 0-2 of the EIBRCODE.
If an I/O operation ends with a CICS SYSIDERR (a problem accessing the remote file), one of the following values is copied to the first 6 characters of sysVar.errorCode:
06D004
Name not that of system entry
06D008
Link out of service
06D00C
Name unknown to CICS
IMS™ BMP

If sysVar.errorCode is in the form RSnnnnnn, you can get details by looking under nnnnnn in the return codes section of the documentation for Rational COBOL Runtime for zSeries.

The following is the only file type unique to IMS BMP. For all other file types, see the entry for z/OS batch later in this table.
IMS message queue
sysVar.errorCode contains the DL/I status code after an I/O function. The last 6 characters of sysVar.errorCode are spaces.
IMS/VS The only files that can be used in this environment are serial files associated with IMS message queues. sysVar.errorCode contains the DL/I status code after an I/O function to one of these files. The last 6 characters of sysVar.errorCode are spaces.
z/OS batch

If sysVar.errorCode is in the form RSnnnnnn, you can get details by looking under nnnnnn in the return codes section of the documentation for Rational COBOL Runtime for zSeries.

Otherwise, the characters in sysVar.errorCode are specific to file type:
GSAM
sysVar.errorCode contains the DL/I status code after an I/O function. The last 6 characters of sysVar.errorCode are spaces.
SEQ
sysVar.errorCode contains the COBOL status key value or values in the first 2 characters. The remaining 6 characters are zeros.
SEQRS
If a dynamic allocation fails, the first 3 bytes of sysVar.errorCode contain the value S99 (for SVC 99, dynamic allocation); byte 4 is the SVC 99 return code in hexadecimal; and bytes 5-8 contain the error reason code in hexadecimal.

If an end-of-file condition occurs during a read, sysVar.errorCode contains return code "00000004".

If an OPEN fails, sysVar.errorCode contains return code "00000008".

If a failure occurs during a read, write, or close, sysVar.errorCode contains return code "00000012".

VSAM
sysVar.errorCode contains the following information:
  • 2 characters for the COBOL status key value or values
  • 2 characters for the COBOL VSAM return code, which is the VSAM feedback code
  • 1 character for the COBOL VSAM function code, which is the VSAM component code
  • 3 characters for the COBOL VSAM feedback code, which is the VSAM reason code
VSAMRS
If a dynamic allocation fails, the first 3 bytes of sysVar.errorCode contain the value S99 (for SVC 99, dynamic allocation); byte 4 is the SVC 99 return code in hexadecimal; and bytes 5-8 contain the error reason code in hexadecimal.

If a failure occurs during a file open or close, the first 2 bytes of sysVar.errorCode contain the error code from the VSAM program control block (ACB) in hexadecimal, and the remaining 6 characters are zeros.

In other cases, sysVar.errorCode contains the following information:
  • 2 characters of zeros
  • 2 characters for the COBOL VSAM return code, which is the VSAM feedback code
  • 1 character for the COBOL VSAM function code, which is the VSAM component code
  • 3 characters for the COBOL VSAM feedback code, which is the VSAM reason code

Feedback