ContentsIndexPreviousNext

File Status Codes

ACUCOBOL-GT supports five different sets of FILE STATUS code values. These five sets correspond with the values used by RM/COBOL-85, RM/COBOL version 2, Data General ICOBOL, VAX COBOL, and IBM DOS/VS COBOL. By default, ACUCOBOL-GT uses the RM/COBOL-85 values.

You can select another set of file status codes at runtime by setting the configuration variable "FILE_STATUS_CODES" to one of the following values:

"74" -RM/COBOL version 2 codes
"85" -RM/COBOL-85 codes (default)
"DG" -ICOBOL codes
"VAX" -VAX COBOL codes
"IBM" -IBM DOS/VS codes

For file systems that support READ PREVIOUS, wherever READ NEXT is mentioned, READ PREVIOUS is also implied. An end of file for READ NEXT is analogous to a beginning of file for READ PREVIOUS.

Regardless of which set of status codes is being used:

85 74 Vax DG IBM Condition
00 00 00 00 00 Operation successful.
02 02 00 00 00 The current key of reference in the record just read is duplicated in the next record. (read next)
02 02 02 00 00 The operation added a duplicate key to the file where duplicates were allowed. (write, rewrite)
05 00 05 00 10 Optional file missing. If the open mode is I-O or EXTEND, then the file has been created. This is also returned by DELETE FILE if the file is not found. (open, delete file)
07 00 07 00 00 A CLOSE UNIT/REEL statement was executed for a file on a non-reel medium. The operation is successful.
0M 0M 0M 0M 00 The operation was successful, but some optional feature was not used. For example, if you opened a file that specified an alternate collating sequence, but the host file system did not support that feature, then the open would succeed, but it would return this status.
10 10 13 10 10 End of file. (read next)
14 00 14 00 00 A sequential READ statement was attempted for a relative file, and the number of digits in the relative record number is larger than the size of the relative key data item. (read next)
21 21 21 21 21 Primary key was written out of sequence, or the primary key on a rewrite does not match the last record read. This error occurs only for an indexed file open with the sequential access mode. (write, rewrite)
22 22 22 22 22 Duplicate key found but not allowed. (write, rewrite)
23 23 23 23 23 Record not found.
24 24 24 24 24 Disk full for relative or indexed file. (write)
24, 01 00 24, 01 00 24 A sequential WRITE statement was executed for a relative file, and the number of digits in the relative record number was larger than the size of the relative key data item. (write)
30, xx 30, xx 30, xx 30, xx 30 Permanent error. This is any error not otherwise described.
The secondary code value is set to the host system's status value that caused the error. See your operating system user manual for an explanation.
34 34 34 34 34 Disk full for sequential file or sort file. (write, sort)
35 94, 20 35 91 93 File not found. (open, sort)
37, 01 95, 01 37, 01 91, 01 93 The file being opened is not on a mass-storage device, which is required for the file type or the requested open mode. (open)
37, 02 95, 02 37, 02 91, 02 93, 02 Attempt to open a sequential file with fixed-length records as a Windows spool file.
37, 07 90, 07 39, 07 91, 07 93 User does not have appropriate access permissions to the file. (open)
37, 08 95, 08 37, 08 91, 08 93 Attempt to open a print file for INPUT. (open)
37, 09 95, 09 37, 09 91, 09 9q3 Attempt to open a sequential file for I/O and that file has automatic trailing space removal specified. (open)
37, 99 95, 99 37, 99 91, 99 93, 99 A Windows or Windows NT runtime that is not network-enabled tried to access a file on a remote machine.
38 93, 03 38 92 93 File previously closed with LOCK by this run unit. (open)
39, xx 94, xx 39, xx 9A, xx 95 Existing file conflicts with the COBOL description of the file. (open)
The secondary error code may have any of these values:
01 - mismatch found but exact cause unknown (this status is returned by the host file system)
02 - mismatch found in file's maximum record size
03 - mismatch found in file's minimum record size
04 - mismatch found in the number of keys in the file
05 - mismatch found in primary key description
06 - mismatch found in first alternate key description
07 - mismatch found in second alternate key description
The list continues in this manner for each alternate key.
41 92 41 91 93 File is already open. (open)
42 91 42 92 92 File not open. (close)
42 91 94 91 92 File not open. (unlock)
43 90, 02 43 92 23 No current record defined for a sequential access mode file. (rewrite, delete)
44 97 44 92 21 Record size changed. The record being rewritten is a different size from the one existing in the file, and the file's organization does not allow this. (rewrite)
This status code can occur also if the record is too large or too small according to the RECORD CONTAINS clause for the file. (write, rewrite)
46 96 46 92 21 No current record. This usually occurs when the previous operation on the file was a START that failed, leaving the record pointer undefined. (read next)
47, 01 90, 01 47, 01 92, 01 13 File not open for input or I-O. (read, start)
47, 02 91, 02 47, 02 92, 02 13 File not open. (read, start)
48, 01 90, 01 48, 01 92, 01 13 A file that is defined to be access mode sequential is open for I-O, or the file is open for INPUT only. (write)
48, 02 91, 02 48, 02 92, 02 13 File not open. (write)
49, 01 90, 01 49, 01 92, 01 13 File not open for I-O. (rewrite, delete)
49, 02 91, 02 49, 02 92, 02 13 File not open. (rewrite, delete)
93 93 91 94 93 File locked by another user. (open)
94, 10 94, 10 97 97, 10 93 Too many files open by the current process. (open)
94, 62 94, 62 39, 62 92, 62 93 One of the LINAGE values for this file is illegal or out of range. (open, write)
94, 63 94, 62 39, 62 92, 62 93 Key not specified (specifying a table whose size is zero) in a SORT or MERGE statement
98, xx 98, xx 30, xx 9B, xx 93 Indexed file corrupt. An internal error has been detected in the indexed file. The secondary status code contains the internal error number. The file should be reconstructed with the appropriate utility.
99 99 92 94 23 Record locked by another user.
9A 9A 9A 9A 23 Inadequate memory for operation. This most commonly occurs for the SORT verb, which requires at least 32K bytes of free space. (any)
9B 9B 9B 9B 23 The requested operation is not supported by the host operating system. For example, a READ PREVIOUS verb was executed, and the host file system does not have the ability to process files in reverse order. (any)
9C 9C 9C 9C 23 There are no entries left in one of the lock tables. The secondary error code indicates which table is full:
01 - operating system lock table
02 - internal global lock table (see the MAX_LOCKS configuration variable)
03 - internal per-file lock table (see the LOCKS_PER_FILE configuration variable)
9D,xx 9D,xx 9D,xx 9D,xx 92 This indicates an internal error defined by the host file system. The "xx" is the host system's error value. This is similar to error "30", except that "xx" is specific to the host file system instead of the host operating system. Refer to the specific Acucorp product documentation for more details on the host file system's error codes.
9E,xx 9E,xx 9E,xx 9E,xx 92 This indicates an error occurred in the transaction system. The exact nature of the error is shown by the contents of TRANSACTION-STATUS.
9Z 9Z 9Z 9Z 92 This indicates that you are executing the program with a runtime that has a restriction on the number of records it can process. You have exceeded the record limit.

More:

Vision Secondary Error Codes for Error 98s

Transaction Error Codes

IBM DOS/VS Error Codes