A transaction management error is one that follows a START TRANSACTION, COMMIT, ROLLBACK or call to C$RECOVER, or one that occurs during some other file operation within a transaction (resulting in an error 9E). Error codes associated with these are stored in the TRANSACTION-STATUS register. This topic lists and describes the primary and secondary transaction error codes.
Following is a list of the primary error codes for the transaction management system.
|01||This is returned from a ROLLBACK statement or call to C$RECOVER when an error occurs in an external routine.|
|02||An attempt to open the log file failed because the maximum number of files per process would be exceeded. This is returned from a START TRANSACTION or call to C$RECOVER.|
|03||An attempt to open the log file failed because some element of the specified directory path is non-existent. This is returned from a START TRANSACTION statement or call to C$RECOVER.|
|04||An attempt to open the log file failed because the user has insufficient access privileges for the file. This is returned from a START TRANSACTION statement or call to C$RECOVER.|
|05||This indicates an operating system error that is not otherwise covered by one of the standard error conditions. You can determine the exact nature of this error by examining the value of the secondary error code.|
|06||This indicates that the log file is corrupted. The error is returned when the program encounters an unexpected end of file, or when an invalid transaction type code is found during recovery.|
|07||An attempt to open the log file failed because the file is locked (MS-DOS only). This is returned from a START TRANSACTION statement or a call to C$RECOVER.|
|08||This indicates that the system ran out of dynamic memory.|
|09||This indicates that a write failed because the disk is full.|
|10||This is returned from a START TRANSACTION statement or call to C$RECOVER when no log file was specified in the LOG-DIR configuration variable.|
|11||This is returned from a ROLLBACK or COMMIT statement when an unexpected end of file is reached while the rollback log file is being read.|
|12||A START TRANSACTION, ROLLBACK or COMMIT failed because the last transaction in the log file is incomplete.|
|13||This error is returned in the TRANSACTION-STATUS register from a WRITE, REWRITE, CLOSE, or DELETE if the file was not opened within a transaction. Note that, if the FILE-CONTROL paragraph for the file contains the WITH ROLLBACK phrase, all OPENs are automatically performed within a transaction.|
|14||This is a file-system specific error that is not one of the standard errors, and not an error returned by the operating system. The secondary and tertiary error codes indicate the exact meaning, which is file-system dependent.|
|16||This error is returned when the runtime is executing a START TRANSACTION while another transaction is already active.|
|17||This error is returned when vision attempts and fails to open a transaction log temporary file. Check the setting of the LOG_DIR variable, and that it points to a directory that already exists.|
|99||This warning indicates that the requested transaction operation is not supported by a host file system. The transaction operation
is still attempted for other file systems.
For example, the runtime includes the RMFM (RM/COBOL) file handler, which does not support transactions. You can remove the RMFM file handler from the runtime by setting the RMFM_DETACH 1 configuration variable. Whether you remove RMFM or not, the Vision file handler will continue to process transactions as expected.
The following is a list of the secondary error codes for transaction error 01.
|Secondary Error||Corresponding file-status error|
|01||operating system error (see tertiary code for system-specific error code)||30|
|03||attempt to open more files than system allows||94/10|
|04||open mode does not allow operation||48/01 or 49/01|
|05||requested record is locked||99|
|06||index file is corrupt||98/xx|
|07||duplicate key where duplicates not allowed||22|
|08||requested record not found||23|
|10||disk became full while adding a new record||24|
|11||file locked against requested open mode||93|
|12||record size mismatch during rewrite||44|
|14||out of dynamic memory||9A|
|15||requested file does not exist||35|
|16||inadequate access permissions to file||37/07|
|17||requested operation not supported||9B|
|18||out of lock-table entries||9C|
|19||file-system specific error||9D|