![]() | Code Generation Error Messages | File Status Codes | ![]() |
These messages are output by the run-time system (RTS), and so can be produced while you are compiling, debugging, or running your program. For each error message, the error message number, and its text and severity, is listed, along with an explanation of the error or problem that caused the message, and advice on how to prevent the error.
Run-time system messages are displayed in the format:
action error: file 'file-name' error code:yyy, pc=xxxxxxxx, call=0, seg=ss nnn message-text
where the variables are:
action |
What the run-time system was doing at the time of the error. For example, execution, I/O, load or write. |
file-name |
The name of the file on which the run-time system was operating |
yyy |
Either the run-time system error number or, if the error is caused by an I/O operation, the file status value. If the latter, the file status mappings currently on force are also displayed. |
xxxxxxxx |
The position of the program counter, in hexadecimal. |
ss |
The number of the segment being executed (0 for ROOT) |
nnn |
The error number |
message-text |
The error message |
message |
One of:
|
There are two types of run-time error; exceptions and I/O errors. I/O errors are either fatal or recoverable. Recoverable errors are reported by the operating system; this enables you to trap them and take steps to recover from them if at all possible. Exceptions are fatal errors which are not reported and so cannot be trapped.
These are fatal errors covering conditions such as arithmetic overflow, too many levels of PERFORM nesting, and subscript out of range.
These are either fatal or recoverable errors, that cause one of the following to take place:
You must examine status key 1 after each file operation to ensure that the operation has been carried out successfully. 0 in status key 1 indicates the successful completion of a file operation; any other value indicates an error condition of some type.
If an error condition is reported, the action which your program then takes is entirely your responsibility. If your program does not terminate when an error is reported, its subsequent behavior might not be as you would expect.
Fatal errors cause a message to be output to the console, and once this error message has been displayed your program terminates immediately.
Although you cannot recover from such an error during the run of your program, once it has terminated you might be able to take steps to rectify the conditions which caused the error to occur. The list of run-time system error messages gives hints on how this might be achieved for individual errors.
You can trap recoverable errors in your program, but the action you take when one of these errors is received is your responsibility.
Having received a file error you can deal with it in one of many ways. You might want your program to display its own general error message, close any open files (if this is possible) and terminate. This should enable you to save any data which you have already written to the files. This data could be lost if you do not trap the error.
Should you want to recover from an error and to continue to run your program, code your program in such a way as to take action should a particular error be reported. For example, if you receive a "file not found" error then your program could prompt you to insert a disk containing the required file into a specified drive, if your operating system supports this.
Hints on how to recover from specific errors are given later in this chapter but you will be able to follow these hints only if you have coded your program in such a way as to be able to take advantage of them.
You might want to code your program to handle recoverable errors as follows:
The run-time system always returns a value to the operating system when a COBOL program terminates. If the program terminates normally, the value is taken from the program's special register RETURN-CODE If the run-time system terminates the program because an unrecoverable error has occurred or because it has received a message from the operating system to quit immediately, the value returned depends on the operating system as described below.
Windows::
The value returned is 32 for a run-time
system error and 16 for a quit interrupt when running under Windows. A keyboard
quit interrupt is generated when the user presses Ctrl + Break. Use the if
command with the errorlevel parameter to test the returned value, as shown in the
following batch file fragment:
run myprog if errorlevel 32 goto rts_error if errorlevel 16 goto rts_interrupt
UNIX:
The run-time system returns a value of -1 for a
run-time system error and -2 for an abnormal termination when the keyboard
interrupt key (for example, Ctrl-C) is pressed or the SIGTERM or SIGHUP
signals are received. Typically, many UNIX implementations translate the value
of -1 to the unsigned value 255, and the value -2 to the unsigned value 254.
You can configure the run-time system to ignore ignore keyboard interrupts by
using the run-time switch i (see the chapter
Descriptions of Run-time
Switches in your User's Guide for further
details). Use the Bourne shell special parameter $? to obtain the value
returned to the operating system, as shown in the following shell script
fragment:
cobrun prog
if test $? -eq 255
then echo "Abnormal termination"
fi
See your operating system documentation for further details of how interrupts can be generated and how to handle values returned by a program.
These messages are output by the run-time system (RTS), and so can be produced while you are compiling, debugging, or running your program. When you select an error message number, its text and severity is listed, along with an explanation of the error or problem that caused the message, and advice on how to prevent the error.
There are two types of run-time error:
| Fatal | A message is sent to the screen and the program terminates immediately. |
| Recoverable | The error is reported to the program. You can trap these errors in your program, but often they are the result of an error in your program's logic. If the program does not trap the error a message is sent to the screen and the program terminates immediately. |
You have tried to open a file directly or indirectly and, although you have not exceeded your system's file limit, something in your system is unable to allocate enough memory space for this operation.
Resolution:
Although you can trap this error you must do
STOP RUN as soon as it is reported.
You have tried to access a file without opening it first.
Resolution:
Open the file with the open mode that you need
and try the operation again. As this error implies that your program logic
contains a mistake, you might want to terminate the run and recode your
program.
You have tried to open a device as a relative or indexed file.
You are trying to execute a device, not a program.
Resolution:
Open the device in the correct mode or close any
open files, do STOP RUN and recode your program.
The name of your program is recognized by the operating system as a valid device. Rename your program.
A file-name contains an illegal character. This could be any character that is not part of the permitted character set or it could be the system-dependent delimiter, which on most systems is the space.
Resolution:
Try the file operation again using the correct
file-name.
Devices to which your COBOL program can write are defined by the operating system. You have tried to write to a device that is not defined by your system.
Resolution:
Try the operation again using a device name that
your system recognizes.
You have tried to WRITE to a file that is open for input only.
Resolution:
Close the file and open it with a mode such as
I-O, which allows you to write to the file. As this error implies that your
program logic contains a mistake, you might want to terminate the run and
recode your program.
The disk is full.
Resolution:
This error can be trapped, but once it has been
reported you must do a STOP RUN immediately to terminate your program's run.
When your program has terminated, delete any files that you no longer need.
Alternatively, if your operating system supports this, put a new disk in a
floppy disk drive and redirect your program's file operations to this.
You have tried to read from a file that is open for output only.
Resolution:
Close the file and open it with a mode such as
I-O, which allows you to read from the file. As this error implies that your
program logic contains a mistake, you might want to terminate the run and
recode your program.
The system cannot write to the specified directory for one of the following reasons:
Resolution:
Create the directory if it doesn't exist. If the
directory is full, either delete any files that you no longer need or, if your
operating system supports this, put a new disk in a floppy disk drive and
redirect your program's file operations to it. Alternatively, specify a
different drive or directory for your file operations.
You have tried to open a file that you have declared as an external file, but have not named.
Resolution:
Specify the external file-name.
One of the following has occurred:
Resolution:
Terminate any processes that you are no longer
using, or make more memory available.
Your operating system might enable you to increase the maximum number of processes allowed. Refer to your operating system documentation for further information.
You have tried to open a file which is already open and so cannot be opened again.
Resolution:
Cancel your second attempt to open the file. If
the fact that the file is already open is acceptable to you, continue to run
your program.
The operating system has been unable to find a file which you have tried to access in your program.
Resolution:
Ensure that you are in the correct directory or
that a path to the file concerned exists. You can then try the file operation
again. If the error is the result of a spelling mistake then ask for the
correct file and try the file operation again.
You have tried to exceed the maximum number of files which you can have open at any one time. This can be a software or an operating system constraint, but you must not violate it.
Resolution:
Close some of the open files which you are not
currently accessing, and then try to open the relevant file again. You should
then be able to continue to run your program.
You have tried to exceed the maximum number of indexed files which you can have open at any one time. This can be a software or an operating system restraint, but you must not violate it.
Resolution:
Close some of the open indexed files which you
are not currently accessing, and then try to open the relevant file again. You
should then be able to continue to run your program. (Indexed files count as
two files, one for data and one for the index.)
You have tried to exceed the maximum number of device files which you can have open at any one time. This can be a software or an operating system constraint, but you must not violate it.
Resolution:
Close some of the open device files which you
are not currently accessing, and then try to open the relevant file again. You
should then be able to continue to run your program.
You have probably tried to access a record that has had no value moved into it.
Resolution:
Although this error is recoverable in the sense
that it can be trapped, once it has been reported you must execute a STOP RUN
statement immediately and then recode your program to ensure that the COBOL
record length is not zero.
A part record has been found at the end of a file. Consequently your run-time system treats the data file as a record, and not finding a full record, reports this error.
Resolution:
Ensure that the record size you give when you
read from or WRITE to a file is consistent.
You are trying to do a REWRITE to a file that has not been opened with the correct access mode for this operation.
Resolution:
Close the file and reopen it in a mode such as
I-O, which allows you to do REWRITE operations on that file. As this error
implies that your program logic contains a mistake, you might want to close any
open files and then execute a STOP RUN. You can then recode your program to
eliminate the logic error.
You have tried to open a file that is assigned to a device or resource (for example, a line printer) that is not available at this time.
Resolution:
You can trap the error status returned by open
and retry the open at regular intervals until it succeeds.
You have tried to WRITE to a directory instead of to a file.
Alternatively, the attributes are not set up correctly to allow you to access a file. That is, it is marked as read-only or you don't have sufficient rights to open it.
Resolution:
Recode your program so that it writes to a file
and not to a directory.
You need to either change your file access attributes or recode your program so that it does not violate the existing attributes.
The mode in which you are trying to open a file violates the General Rule of COBOL for that type of file; for example you might have opened a line sequential file in the I-O mode.
Resolution:
Open the file with a mode that is compatible
with that type of file.
The mode in which you are trying to close a file is not possible for that type of file.
Resolution:
Close the file with a new access mode which is
compatible with that type of file, or execute a STOP RUN statement and recode
your program.
You might have performed a read after a WRITE, or there might be either a verification failure or a parity error.
Resolution:
In some circumstances this error is fatal, but
if it occurs during a read you can trap it and then do a close on the file
before executing a STOP RUN statement.
You are trying to set up terminal characteristics for a device which is not a terminal.
Resolution:
Recode your program.
An error has occurred while you are trying to access a disk. This could be the result of a corrupt disk.
Resolution:
If you have a corrupt disk try to run your
program again using your backup copy.
You are trying to access a device which either is not attached to your machine or if attached is not on-line.
Resolution:
Attach the device to your machine and ensure
that it is on-line. Repeat the file operation.
You have tried a file operation such as WRITE for which insufficient space is available on your disk.
Resolution:
When your program has terminated you should
delete some of the files or directories on your current logged in disk. Ensure
that you delete sufficient files on your disk so that you have enough room to
carry out successful file operations.
You have tried to perform a DELETE FD operation on an open file.
Resolution:
Close the file before performing the DELETE FD
operation.
The file system which you are using is read-only, which effectively means that it is write-protected. You have tried to change a file in some way, for example you might have tried to WRITE to a file or to DELETE information in it.
Resolution:
You should abandon your attempt to alter the
file unless you can make your own personal copy of it. You should then be able
to alter the contents of your copy, but not of the original source.
You are trying an operation on a file but the file's owner has not given you the necessary permission for that operation. You could for example be trying to alter the access modes for a file, which only the file's owner can do.
Resolution:
You should abandon your tried file operation
unless the file's owner gives you the permission necessary to do the operation
you want to carry out.
You have tried to open an indexed file but the number of files that you currently have open is the system limit.
Alternatively, you could be trying to use a process id which does not exist, or which your operating system no longer recognizes.
Resolution:
You should close some of the indexed files which
you are no longer accessing, and you should then be able to open the file you
require.
In this case you must rewrite your code so that it uses a process id which your system recognizes.
You have a hardware error of some type. Perhaps you have not put a disk in the relevant drive or you might have tried to WRITE to a disk but the processor detected hardware interface has failed.
Resolution:
You should try to correct the fault in your
hardware; for example put a disk in the necessary drive.
You are either trying to write to a file which is open for read purposes only, or read a file which is open for write purposes only.
Resolution:
You should close the file and reopen using the
correct access mode. As this error implies that your program logic contains a
mistake, you might want to close any open files, execute a STOP RUN statement
and then recode your program to eliminate the logic error.
Shareable files opened INPUT (read-only) by the COBOL system still require write-permission (from the operating system) to enable temporary locking to take place.
You are trying a file operation which you do not have sufficient permission to achieve. For example you could be trying to write data to a file which has been set up with the read attribute only.
Resolution:
If you are the owner of the file you can alter
the attributes of the file so that you have the permission needed to effect the
particular file operation you were trying. If you are not the owner of the file
you cannot to carry out that operation successfully unless you copy the file
and make the changes to the copy only. You cannot alter the source file.
You are trying an inappropriate operation on an already existing file.
Resolution:
As this error implies that your program logic
contains a mistake, you might like to recode your program to eliminate this
mistake.
Your attempt to access a file has been denied by the operating system. You might have tried to write to a write-protected file or you could have tried to read from an output device.
Resolution:
Alter the access permission on the relevant
file. Access can be read-only, if you just want to read the contents of the
file without making any changes, or it can be read and write in which case you
can alter its contents.
You have tried to access a disk that is incompatible with the current version of your operating system. This could be because it was created under a previous version of the system or it could have been created under a completely different operating system. You would also receive this error if you tried to load a disk with a name that clashed with a disk that was already loaded.
Resolution:
If the error is a result of a clash of names you
can rename one of the disks and then you can load both disks together if this
is what you want.
You have tried to access a file that is not compatible with the structure of files under the current release of your software. This could be because the file was created either under a different operating system or under a previous version of your current system.
Resolution:
You should create a new copy of the file which
has the correct structure.
You have tried to use the additional language variants, but the environment or side file that is required to set up the language either has not been set up correctly, or does not exist, or is invalid.
This might be because you have the LANG environment variable set for use by another system in a format not recognized by this COBOL system.
Resolution:
Set up the required environment or side file
before you try to run the program again.
Your run-time system does not recognize the control information for an indexed file and as the index has been corrupted in some way the data in the file is no longer accessible by your system. This error is recoverable in the sense that it can be trapped but should you receive it, you can do little except to close any open files and stop your program's run.
Resolution:
You should rerun your program using the backup
copy of that file. If you have added a great deal of information to the file
since you last took a backup you might like to rebuild the file using the
Rebuild utility, which reads the data (if this has not been corrupted) and
builds a new index for it.
One of the following has occurred:
Resolution:
You can trap the error status returned by the
write operation, then open the file again.
The system has crashed on your program's previous run, while the file was open. Information was probably added to the end of the file, but the directory information was not updated and so that data cannot be accessed by your system. Alternatively, you have copied the indexed file from one disk to another but have copied either only the data part of the file or only the index.
Resolution:
If the error is the result of a crash then
whether you can access the necessary data or not is entirely system dependent.
If, however, it is the result of a faulty copy you should be able to restore
the missing part of the file from the .dat or .idx file.
The logical file-name is preceded by "%NLS%", but the program which OPENS the file has been compiled without the NLS directive set: the OPEN fails.
The NLS control information for a file in your program does not match the same NLS control information in the header of your index file. Alternatively, your index file has become corrupted.
Resolution:
Rebuild your index file, or rerun your program
using the backup copy of that file. If you have added a great deal of
information since you last took a backup, you might want to rebuild the file
using a utility that is able to read the data, if it is not corrupt, and build
a new index for it.
The structure of your indexed file contains a fault. You have probably tried to put another entry in the index when there is no room for it. This may be because you have reached the maximum number of duplicate keys.
Alternatively, you have tried to access an old format indexed file, created perhaps using CIS COBOL.
Resolution:
If your index has no room for further entries
you should either reorganize your file or convert it to IDXFORMAT"4"
using Rebuild, to allow a greater number of duplicate keys.
If you have tried to access an old format indexed file, you can run the Rebuild utility to check the consistency of this indexed file, and to construct a new indexed file if the old one was found to be corrupt.
You are executing a program that is trying to perform a fixed-point divide by zero.
Resolution:
Recode your program so that you can trap the
error with an ON SIZE ERROR clause
You have tried to load too many programs simultaneously.
Resolution:
Cancel any programs that you are no longer
using, or use fewer separate programs.
You have tried to open a file which has already been locked, or opened for output by another user. Alternatively, you have tried to lock or open for output a file which another user already has open.
Resolution:
Your program can inform the system operator (if
there is one) that it is unable to access this file and should wait until the
other user has finished using the file and closes it. You should then be able
to continue to run your program.
You have tried to add a duplicate key for a key which you have not defined as being able to have duplicates.
Resolution:
As this error implies that your program logic
contains a mistake, you probably should recode.
You are trying to access an indexed file which you have not opened.
Resolution:
Open the file in the relevant access mode and
then retry the unsuccessful file operation.
You have tried to access a record which is currently locked by another user.
Resolution:
Your program can inform the system operator (if
there is one) that the record is currently locked, and you should then wait
until the other user has released the lock on that record. You should then be
able to access the relevant record. You should not continually retry to gain
access to the record without operator intervention, as this could result in
your application hanging.
This is the result of an internal system error.
Resolution:
Contact Technical Support who will help you
discover the cause of your error and how it can be rectified.
You are trying to open an indexed file but you have already exhausted the system limit which specifies how many of these files can be opened at any one time.
Resolution:
Close some of the open indexed files which you
are not currently accessing. You should then be able to open the indexed file
which you require and to continue the program run.
You are either using a file which has been corrupted, or there is an internal system error.
Resolution:
If the disk you are using is corrupt, rerun your
program using your backup copy of the disk. If this is not the cause of the
error then you should contact Technical Support who will help you discover the
cause of your error and how it can be rectified.
This is the result of an internal system error.
Resolution:
Contact Technical Support who will help you
discover the cause of your error and how it can be rectified.
This is the result of an internal system error.
Resolution:
Contact Technical Support who will help you
discover the cause of the error and how it can be rectified.
This is the result of an internal system error.
Resolution:
Contact Technical Support who will help you
discover the cause of the error and how it can be rectified.
When creating indexed files, the extension .idx is added to the user-defined file-name, so your file-name must not exceed x-4 characters in length, where x is the maximum length of file-name.
Resolution:
Rename the file with a shorter file-name, that
is, one that is less than 10 characters in length.
For some reason your system is unable to create a lock file in the /isam directory. One reason for this could be that in its previous run your program terminated abnormally (perhaps due to a power failure) leaving some files locked.
Resolution:
You should manually remove all of the files that
are still locked from the /isam directory before you can successfully
run your program.
This is the result of an internal system error.
Resolution:
Contact Technical Support who will help you
discover the cause of your error and how it can be rectified.
This is the result of an internal system error.
Resolution:
Contact Technical Support who will help you
discover the cause of your error and how it can be rectified.
An error exists in the run-time configuration sidefile accessed via the environment variable COBCONFIG.
Resolution:
Check the syntax of the entries in the
configuration file. You might have used incorrect syntax, or syntax that is not
compatible with the type of run-time tuneable you are configuring (this could
include assigning an illegal value to the tuneable).
See Also:
The chapter
Run-time Configuration
in your User's
Guide.
This is the result of an internal system error.
Resolution:
Contact Technical Support who will help you
discover the cause of your error and how it can be rectified.
The CALL convention you have specified is not supported.
Resolution:
Change the convention defined in the
special-names paragraph to one of the supported CALL conventions.
A SORT or MERGE module has received a RELEASE operation outside the Input procedure, or a RETURN operation either outside the Output procedure, or before the Input procedure has terminated correctly.
Resolution:
Recode your program so that RELEASE and RETURN
operations are issued by the appropriate procedures.
You have tried a file operation which violates a general rule of COBOL in some way. The most likely cause of this error is that you have tried a rewrite on a sequential file opened I-O, or on a relative file with access mode sequential also opened I-O, without preceding it with a successful read NEXT.
Resolution:
Recode your program to ensure that the REWRITE
statement in error is preceded by a read NEXT.
This is the result of an internal system error.
Resolution:
Contact Technical Support who will help you
discover the cause of your error and how it can be rectified.
You have either specified an incorrect record length for a sequential file, or the sequential file you are trying to access is corrupt in some way, or the file which you have specified is not a sequential file.
Resolution:
Recode your program so that it specifies the
correct type of file, or if the error is the result of a corrupt file, try to
run the program again using a backup copy of that file.
You specified a data-name for a file-name instead of a literal, and the data item contained only spaces when you tried to open the file.
Resolution:
Recode your program specifying the correct
file-name.
The run-time system is unable to allocate sufficient memory space to successfully carry out the tried operation, probably because of insufficient memory space on your system.
Resolution:
You should obtain more memory in which to run
your program. Refer to your operating system documentation for details of how
you can obtain more memory, if this is possible.
This could be the result of a read or write error to file or disk, but it is more likely to be the result of an internal system error.
Alternatively, your application might have called many programs without canceling them afterward, so that memory becomes exhausted during animation.
Resolution:
Contact Technical Support who will help you to
discover the cause of your error and how it can be rectified.
Ensure that as much memory as possible is available during animation by CANCELing any program you do not currently need to access.
You are trying to perform a file operation which your run-time system does not support.
Resolution:
You should recode your program so that it does
not try such operations, or you should acquire a version of your system that
does support this facility.
The run-time system cannot load your program properly because the data needed to correctly initialize the Data Division has become corrupted.
Resolution:
You should compile your program again to try to
obtain good intermediate code.
The internal information in the run-time system has been altered. The run-time system might have become corrupted, or you might have illegally tried to change the internal run-time system information.
Resolution:
Contact Technical Support who will help you to
discover the cause of the error and how it can be rectified.
The version numbers for these components do not match.
Resolution:
Check that you have fully installed both the
Class Library and the Run-Time Environment from the same version of Object
COBOL. If you have more than one version installed, check that your PATH,
LIBPATH, and COBDIR environment variables specify an appropriate path for the
version you are using.
The run-time system cannot locate or cannot access the coded security key (dongle) that is required to execute this application.
Resolution:
Connect the security key that was supplied with
your COBOL system to the parallel port of your computer, then re-run the
application.
Memory access violation has been detected by your operating system.
See Also:
The chapter
Handling Protection Violation
Errors in your Programmer's Guide to Writing
Programs.
A signal the run-time system was not expecting has been caught.
For some reason a part of your run-time system is unable to allocate you sufficient memory to enable you to execute your code.
Resolution:
You should try to reduce memory usage by
canceling programs that are not in use, then try the operation that caused this
message again.
This is an internal system error.
Resolution:
Please contact Technical Support who will help
you to discover the cause of the error and how it can be rectified.
You have attempted to reference a name that has not been defined.
The run-time system has detected a name (for example, data item, entry point or module name) which is already defined.
OO programs can also cause this error for either of the following reasons:
Resolution:
You can recode your application to remove the
naming duplication.
See Also:
The description of the E run-time switch in the
chapter
Descriptions of Run-time
Switches in your User's Guide.
You probably have a malformed object file.
Resolution:
Once the program has terminated you must correct
your object file. If this does not work, contact Technical Support who will
help you to discover the specific cause of the error.
You have tried to call a subprogram that is not an executable program.
Alternatively, you have used the same name for a called program as for a previously defined data item.
Resolution:
Check that the subprogram being called is an
executable one. If required, correct the subprogram's name in the calling
program and resubmit it to your COBOL system.
Once your program has terminated, recode it to remove the naming duplication. Resubmit your program to your COBOL system.
You might have returned control to a higher level in the CALL/PERFORM hierarchy than the level at which cobsetjmp() was called. coblongjmp() must be called only from the same or from a lower level in the CALL/PERFORM hierarchy as the corresponding cobsetjmp() or cobsavenv().
Resolution:
Check and correct the logic of your program, and
then resubmit it to your COBOL system.
You are using incompatible versions of the object file and the COBOL run-time library.
Resolution:
Once the program has terminated, resubmit your
object file to your COBOL system with the current version of your COBOL
run-time library. If this does not work, contact Technical Support who will
help you to discover the specific cause of the error.
See Also:
Your Fileshare User's Guide.
See Also:
Your Fileshare User's Guide.
You have called coblongjmp() in a different thread from the corresponding call to cobsetjmp(). coblongjmp() must be called from the same thread as the corresponding call to cobsetjmp().
Resolution:
Check and correct the logic of your program,
then resubmit it to your COBOL system.
The value specified in the RELATIVE KEY data item contains the value zero.
Resolution:
You should ensure that the value in the RELATIVE
KEY data item is greater than zero, then continue to run your program.
The operating system has been unable to find a file which you have tried to access in your program.
Resolution:
Ensure that you are in the correct directory or
that a path to the file concerned exists. You can then try the file operation
again. If the error is the result of a spelling mistake then ask for the
correct file and try the file operation again.
An attempt was made to execute a .gnt file or a library file that is not valid. The file might be corrupted or truncated.
Resolution:
Recompile the source code or recreate the
library file, ensuring that it is processed without errors.
You are trying to open a file which you previously closed with lock, which violates one of the general rules of COBOL programming.
Resolution:
You cannot open the relevant file. As this error
implies that your program logic contains a mistake, you might want to close any
remaining open files, execute a STOP RUN statement and recode.
A discrepancy exists between the length of a record, or the keys which you have specified, in your current program and its definition in the program in which it was first opened.
Resolution:
Your program has a fault, so you probably should
edit your code, then resubmit it to your COBOL system before running it again.
You have tried to open a file which is already open and so cannot be opened again.
Resolution:
Cancel your second attempt to open the file and
continue to run your program if the fact that the file is already open is
acceptable to you. However as this error implies that your program logic
contains a mistake, you might want to close any open files, execute a STOP RUN
statement and then recode.
You have tried to close a file which is not open which is impossible to achieve.
Resolution:
You can abandon your attempt to close the
relevant file and continue to run your program. However, as this error implies
that your program logic contains a mistake, you might want to close any open
files, execute a STOP RUN statement and then recode.
You have failed to do a successful read on a sequentially accessed file trying a REWRITE or DELETE on some of the information contained in that file.
Resolution:
If the previous read was successful then perform
a read on the relevant file before you retry the unsuccessful REWRITE or DELETE
operation. If the previous read was also unsuccessful close the file, execute a
STOP RUN statement and then recode your program before you next run it.
You have tried to write a record to a variable length record file, the length of which is not within the defined range for that file.
Resolution:
Recode your program.
The file position indicator in your file is undefined owing to a failed read/START or INVALID KEY condition. You have tried to read another record in the file but as the current record is undefined the system cannot find the start of the record for which you have asked.
Resolution:
You should try a START operation, and continue
to do so until the file position indicator is updated successfully.
You have tried to carry out a read or START operation on a file which has not been opened for INPUT or I-O, or which is not open at all.
Resolution:
Open the file for I-O or for INPUT and you
should then be able to continue to run your program. However, as this error
implies that your program logic contains a mistake, you might want to close any
files which are open, execute a STOP RUN statement and then recode.
You have tried to write to a file in sequential access mode that you have not opened for OUTPUT or EXTEND, or you have tried to write to a file in random or dynamic access mode that has not been opened INPUT or I-O, or which is not open at all.
Resolution:
Close the file and reopen it with the correct
open mode for the file type. However, as this error implies that your program
logic contains a mistake, you might want to close any files that are open,
execute a STOP RUN statement and then recode.
You are trying to do a REWRITE or a DELETE on a file that you have not opened for I-O, or which is not open at all.
Resolution:
Close the file and reopen for I-O. However, as
this error implies that your program logic contains a mistake, you might want
to close any open files, execute a STOP RUN statement and then recode.
You are trying to do a random read on a file which has sequential organization.
Resolution:
Read the file with the correct access mode. As
this error implies that your program logic contains a mistake, you might like
to close any files which are open, execute a STOP RUN statement and recode.
You have tried a REWRITE on a file that is not open I-O.
Resolution:
Close the relevant file and open it for I-O
operations. You should then be able to carry out the REWRITE operation
successfully. However, as this error implies that your program logic contains a
mistake, you might want to close any open files, execute a STOP RUN statement
and then recode.
A subscript which you have used in your program is out of the defined range, that is, it is either less than one or it is greater than the number of occurrences of the item.
Resolution:
You should recode your program.
This error usually results if you have used GO TO to jump out of the range of a PERFORM rather than to jump to an EXIT statement at the end of its range.
Resolution:
When your program has terminated you should
recode your program to ensure that the GO TO in question jumps to an EXIT
statement at the end of the PERFORM's range.
The run-time system does not recognize as valid the command line format you have specified.
Alternatively, the generic command-line interpreter, which must be present if your program is to be run successfully, is not found on your system.
Alternatively, you have set an invalid COBSW value.
Resolution:
Rerun your application with a valid command
line.
Make sure that the interpreter is present to enable your system to pick up the commands correctly and then rerun your program.
Reset COBSW to a valid value.
You have coded a COMPUTE statement which is too complex for your system to handle successfully.
Resolution:
You should recode your program. We strongly
advise you to break the relevant COMPUTE statement into a number of simpler
statements.
Either your program is too large for the available memory space, or the stack is full.
Resolution:
If you have specified the ON OVERFLOW/EXCEPTION
clause in the relevant CALL statement, the error is recoverable. Any associated
imperative statement is executed before the next instruction.
You have used the REWRITE statement in conjunction with a file whose organization is line sequential. The REWRITE statement cannot be used with line sequential files.
Resolution:
Close the file in error before executing a STOP
RUN statement to ensure that you do not lose any data from it. Recode your
program to make the organization of the file to which you want to do a REWRITE
either sequential, indexed sequential, or relative.
A line-sequential file which you are trying to access is corrupt in some way.
Resolution:
Rerun your program using the backup copy of that
file.
An error has occurred while trying to load the intermediate code for an independent segment. The segment is either missing or corrupted in some way.
Resolution:
If the segment is missing, locate it. If you
cannot find it, or if it is present and corrupt, resubmit your program to your
COBOL system.
The intermediate code which is currently being processed is not valid code. You are probably trying to execute a corrupted file or one which has not been submitted to your COBOL system successfully.
Resolution:
You should resubmit your source program to your
COBOL system, to try to obtain uncorrupted intermediate code.
You are executing a program that is trying to perform a floating-point divide by zero.
Resolution:
You should recode your program to avoid this
illegal operation.
The contents of a numeric or numeric edited field are inconsistent with the picture definition of that field.
Resolution:
Adjust your code so that no invalid data is
used. Alternatively you can override this error by setting the F switch to off,
as described in the chapter
Descriptions of Run-time
Switches in your User's Guide.
You have tried to call a subroutine whose entry address has not been set up in your run-time system.
Resolution:
Check to see that you used a valid call number
in the unsuccessful subroutine call. If not, revise your code to contain a call
number which your system recognizes. If you did use a valid call number but
still received this error you should contact Technical Support.
You have tried to:
You have tried to call a COBOL module that is already active.
Resolution:
You should recode your program.
The list of items which you have supplied in a CALL....USING statement is longer than the run-time system can handle.
Resolution:
Once your program has terminated recode it with
group items rather than elementary items before rerunning it.
You have nested a PERFORM statement or a series of CALL statements too deeply.
Resolution:
Edit your program to reduce the number of levels
in the nested PERFORM or CALL statement.
You have tried an operation for which your machine is not configured; the most likely cause of this is incorrect configuration of Adis or the file handler.
Resolution:
Check the configuration of Adis or the file
handler.
A system program, for example Adis or Mffh, is not present.
Resolution:
Ensure that all the system programs are
available and copy those which are not currently present using. Once all the
necessary system programs are available you can run your program.
You are trying to perform Japanese operations with a non-Japanese run-time system, or you have used a Japanese version of your COBOL system to produce code which you are now trying to run using a non-Japanese run-time system.
Resolution:
You should resubmit your program using a
non-Japanese run-time system, or if you still want your program to perform
Japanese operations, you should acquire a Japanese run-time system.
You have tried to call a program which is not present on your current logged-in drive or directory, or in a directory pointed to by the COBPATH environment variable, or to send a message to a class which cannot be loaded.
Resolution:
Once your program has terminated you should copy
the relevant file into your logged-in drive or directory. If insufficient space
is available, you should set the
COBPATH
environment variable to search the directory or drive on which the file is
present when your program calls it.
If the error was caused by a class which could not be loaded, find out whether or not the filename for the class (listed in the Class-Control paragraph) is a separate executable file, or contained in a .dll or .lbr file. If it is a separate executable file, the resolution is as above. If it is part of a .dll or .lbr file, ensure that the containing file has been loaded with a CALL statement before sending messages to any of the classes. If the program not found is P2emgr, you need to load the GUI Class Library, with a CALL "APIGUI" statement.
See Also:
The chapter
Environment Variables in your
User's
Guide.
You have tried to load a .dll file which contains references to another .dll file which cannot be found by the operating system.
Resolution:
Locate the missing file and ensure it is located
on the default search path for your operating system.
You are trying to run a program that produced severe faults when you submitted it to your COBOL system with the run-time switch E turned off.
Alternatively, you could try to run the program with the E run-time switch set, though this might not give the desired results.
Resolution:
You should edit your source code to correct all
the severe faults, resubmit it to your COBOL system, then run the intermediate
code that is produced.
When your program is being animated, the debugger reports this error and enables you to continue to run the program.
See Also:
The description of the E run-time switch in the
chapter
Descriptions of Run-time
Switches in your User's Guide.
You might have a corrupted file. Alternatively, your code contains a segment reference for the Forward Reference Table which is illegal.
Resolution:
Resubmit your source code to your COBOL system.
If you receive this error again, contact Technical Support who will help you to
discover the specific cause of the error.
You have tried to remove a currently executing program or its parents or grandparents, from memory.
Resolution:
Once your program has terminated you need to
recode your program to ensure that you do not try to cancel a program (or its
parents or grandparents) while it is still being executed.
You have tried to chain to another program which your system is unable to find.
Resolution:
Once your program has terminated you should copy
the relevant file into your logged-in drive or directory. If insufficient space
is available, you should set the COBDIR environment variable to include the
directory or drive on which the file is present when your program calls it.
A file-marker used to indicate that the end-of-file has been reached is missing from one of your files.
Resolution:
You should resubmit your code to your COBOL
system, or use a debugger to place the end-of-file marker at the end of the
file. You can then rerun your program.
A parameter which you have used is not one which is recognized by your system.
Resolution:
Revise your code to contain a parameter which is
known by your system.
You are either trying to read input from the screen or write to the keyboard.
Resolution:
You should recode your program.
You have tried to open a line-sequential file in the input-output open mode, but this mode is not supported for files with this organization.
Resolution:
When your program has terminated you should
recode your program to ensure that the file with organization line sequential
is opened for input, output, or extend. You can then rerun your code.
You have either tried to read input from the screen or write to the keyboard, or the ADIS module has not been able to open your terminal's channels for I-O.
Resolution:
Your program logic contains a mistake, so you
must recode.
You have tried to open either a standard input file with output mode, or some other file in an incorrect mode.
A file-name which you have used has more characters than the maximum number allowed by your operating system.
Resolution:
You should recode your program to check the
length of the file in error, and rename it with a shorter file-name. You can
then run your program again.
You are unable to load your intermediate code. You might have tried to load intermediate code that either has not been successfully produced, or has been corrupted in some way.
Resolution:
Try to obtain good intermediate code, for
example, by resubmitting (or submitting) your source code to your COBOL system.
You should then be able to load your code and run the program successfully.
A CALL statement in your program cannot be successfully executed because of the number of arguments which you have used with it.
Resolution:
When your program has terminated you can recode
it using group items rather than elementary ones. You should then be able to
run your program successfully.
Your terminal is not defined.
Resolution:
Your terminal type is undefined, so your
operating system is unable to drive your terminal. Set up the necessary
environment for your terminal.
A compulsory entry, for example cursor movement or clear screen, is missing from your terminal configuration database.
Resolution:
Add the missing entry to your terminal
configuration database.
The intermediate code which is currently being processed is not a valid operation. You are probably trying to execute a corrupt file or one which has not been produced.
Resolution:
You should resubmit your source code to your
COBOL system.
A file which your program is accessing is too large for successful execution to continue.
Resolution:
When your program has terminated you should
recode your program spreading the data over more than one file to ensure that
no file becomes too large for your operating system to handle. Having recoded
your program you can then rerun it.
Before a DELETE or a REWRITE statement can be successfully executed in sequential access mode the last input-output statement executed for the associated file must have been a successful read. In your code no read statement precedes your tried DELETE or REWRITE.
Resolution:
When your program has terminated, recode your
program, making sure that the last input-output statement to be executed before
the DELETE or REWRITE is a read statement.
The relative record key has exceeded the system limit, that is, the file is too large for the system to handle.
Alternatively, the record key which you have specified is too large for the system to deal with successfully, or the pointer to the record has been corrupted in some way so that it is either too large or it is not a multiple of the record length.
This error can be caused by one of the following:
Resolution:
The monitor must be in alphanumeric display mode
rather than graphics display mode.
The system cannot load a program module or, in a multi-threading program, start a new thread.
A CALL statement has failed because:
Any call or attempt to start a thread can fail where internal structures have been corrupted; for example, by a protection violation.
A statement of the form SET PROCEDURE POINTER TO ENTRY entry-point has failed because the entry point cannot be found on disk or in the current run-unit.
Rarely, this error can be caused by a CALL statement failing because of insufficient available memory or because the run-time system version is too old.
Resolution:
Check that the target of your call exists and
has not been corrupted.
Test that a procedure pointer is valid before using it by including code of the form:
set bad-pointer to entry 'just-not-there-ever'
...
set procedure-pointer to entry 'myentrypoint'
if procedure-pointer = bad-pointer
display error
end-if A system call has returned an unexpected error number which is not documented.
Resolution:
Contact Technical Support who will help you to
discover the specific cause of this error.
The amount of memory available on your machine is so low that not even the run-time system can be fully loaded.
Alternatively, your run-time system has stopped as a result of an internal logic error from which you cannot recover.
Resolution:
Free some memory and then you should be able to
run your program successfully.
Contact Technical Support who will help you to discover the cause of the error.
No room is available in your current directory or on the floppy disk which you are using, for the paging file.
Resolution:
When your program has terminated, delete any
files which you no longer need from your directory to make room for the paging
file, or insert a new floppy disk.
The item you are trying to access in the Linkage Section of the currently executing program has not been initialized.
Resolution:
Recode your program to ensure that it contains
all of the necessary parameters, or check that it is a valid caller.
You are trying to read data which has not been written, from the core file.
You have tried to access a machine that is not connected to your network, or which is not on-line.
Resolution:
Make sure the machine is connected to the
network and is on-line, then try to access it again.
This is normally caused by an unexpected error occurring in the network or file-sharing facilities. A corrupted network message also causes this error to be returned.
Resolution:
Retry the unsuccessful operation. If the error
persists, contact Technical Support who will help you to discover the specific
cause of this error.
This is normally given if an incorrect checksum has been received in a communications packet.
Resolution:
Your program should continue to execute after
you have received this error but results might be undefined.
You have tried to open a file which you have previously closed with lock.
Resolution:
Recode your program to avoid opening a file
which has previously been closed with lock.
An attempt was made to run a program that is incompatible with the currently-specified run-time system. For example, system executable, shared library, and callable shared object files that have been linked using older COBOL systems could be incompatible.
On dual 32-bit/64-bit COBOL systems, all code must be compiled and linked using the same word length. A 64-bit run-time system does not run programs compiled and/or linked on 32-bit platforms or in 32-bit mode. Similarly, a 32-bit run-time system does not run programs compiled and/or linked on 64-bit platforms in 64-bit mode.
Resolution:
Recompile and/or relink your program so that it
is compatible with the current run-time system.
You have either tried to exceed the maximum number of simultaneous record locks per file you can have, or you have exhausted an operating system or network resource, for example dynamic memory.
Resolution:
Execute a COMMIT or an UNLOCK operation on the
relevant file and you should then be able to continue to run your program. You
should try not to retain a record lock for longer than is necessary.
You have violated one of the general rules of COBOL programming.
Resolution:
Close any files which might be open, execute a
STOP RUN statement and then edit your program to avoid such illegal operations.
You have tried to animate a program which makes use of the communications module. This cannot be done as both Animator and the communications module need full use of the CRT.
Resolution:
You should run your program without the aid of
Animator.
A device driver is probably missing.
Resolution:
Ensure that all communications drivers are
loaded before you try to run Communications.
The .gnt file is not valid for the host processor.
Resolution:
You must resubmit your program to your COBOL
system.
Either your file header is not correctly formatted, or you are not using a MULTIPLE REEL/UNIT file.
Resolution:
You should try to run your program again using a
backup copy of the relevant file.
You have tried to exceed your operating system's limit on the number of shared files that you can have open simultaneously. As this figure is operating system dependent, you should consult your Release Notes for details of how many shared files your system permits to be open at any one time.
Resolution:
Close some of the open shared files you are no
longer accessing and retry the file operation.
You have coded your program in such a way that it is trying to execute more than one SORT or MERGE operation at the same time. For example, you might have coded a SORT statement in the input or output procedure of another SORT statement, an operation that is specifically prohibited under the rules of ANSI COBOL.
Resolution:
You should recode your program to ensure that it
does not execute more than one SORT or MERGE at any one time.
You have tried a SORT/MERGE operation which has been unsuccessful for some reason. You might have had too many files open when you tried a SORT/MERGE operation, or the file which you are trying to access might be locked.
Resolution:
The action you should take depends on the
situation in which it occurs. Check the status of each file (USING/ GIVING)
defined in the SORT statement.
You have tried a SORT/MERGE operation which has been unsuccessful for some reason. You might have had too many files open when you tried a SORT/MERGE operation, or the file which you are trying to access might be locked.
Resolution:
The action you should take depends on the
situation in which it occurs. Check the status of each file (USING/ GIVING)
defined in the SORT statement.
You have tried a SORT/MERGE operation which has been unsuccessful for some reason. You might have had too many files open when you tried a SORT/MERGE operation, or the file which you are trying to access might be locked.
Alternatively, you have set the TMP environment variable to point to a directory that does not exist.
Resolution:
The action you should take depends on the
situation in which it occurs.
Either set TMP to point to a directory that does exist, or unset TMP.
The run-time system cannot locate the root or overlay of a program that is currently loaded in memory.
Alternatively, you have insufficient memory to load your program.
Alternatively, the run-time system could not find enough file handles to open and, therefore, load the code.
Resolution:
Either the library that contained the program
has been canceled, or the program is no longer available on the program search
path. Ensure that the program is available either on disk or on an open
library.
Either free some memory or restructure your application so that it uses less memory.
Increase your operating system file handles limit.
Two or more programs define the same external file but with different formats. For example, maximum and minimum record lengths might be different.
Resolution:
Make sure that all of your programs define the external file with the same format so that they are consistent. It is useful to have the file definition in a COPY file.
Two or more programs are defining the same external data item, but the first loaded program has defined the size differently from the second or subsequent loaded program.
Resolution:
Make sure that both or all of your programs
define the size of the external data item as being the same.
You have tried a SORT or MERGE operation which has USING/ GIVING files which are defined as EXTERNAL. The SORT/ MERGE module does not support USING/ GIVING files defined as EXTERNAL.
Resolution:
Recompile your program to use the callable SORT
module (EXTSM).
Animator has encountered system limits or conflicts resulting in communications errors. Perhaps two logins on the same UNIX system are trying to cross-session animate the same program file.
Resolution:
Copy the animated program file to a different
directory and try animation.
A program you are animating has terminated without following the standard run-time system shut-down process. The termination was probably either initiated by the user or caused by a severe run-time error.
Resolution:
Run your program without animation to determine
if it runs successfully; if so, animate the program without cross-session or
intrasession animation.
Animator has encountered system limits in starting your program. The animated program cannot start because of either insufficient memory or too many processes running on the UNIX system.
Resolution:
Animate your program when the load on the system
has reduced. Run the program without animation to determine if it runs
successfully; if so, animate the program without cross-session or intrasession
animation. Ask your system administrator to expand the number of process slots
and virtual memory page maps.
Animator has encountered a STOP RUN statement while animating your .gnt code program.
Resolution:
Step or Zoom the animated program, and Animator
will terminate the program and its current session.
You are calling a COBOL module from a non-COBOL program, and have not initialized the shared run-time system.
Resolution:
Ensure that your application calls the cobinit()
function before executing any COBOL modules. See the chapter
Mixed-language
Programming in your Programmer's Guide to Writing
Programs for more information about the cobinit() function.
You have tried to use an object reference that contains an incorrect or non-existent object handle.
Resolution:
Ensure that the object reference uses the
correct object handle, and that your program has not previously destroyed the
object by sending it a Finalize message.
You have tried to create an instance of a class that has been declared ABSTRACT. Such classes cannot be instantiated.
Resolution:
Ensure that you have specified the correct class
name. Check to see if there is a subclass that you should use instead.
The run-time system could not resolve the DoesNotUnderstand message. This is usually because you have defined a class in such a way that this method cannot be found.
Resolution:
Check the logic in your program to ensure that
it invokes only methods that are supported by the object, or ensure that the
object supports the DoesNotUnderstand method.
An attempt to load an object class has failed because the class does not contain a valid Class-Control section, or because the class is not defined correctly.
Resolution:
Check the definition of the class.
While using Animator you have terminated your program with a keyboard interrupt.
Copyright © 2002 Micro Focus International Limited. All rights reserved.
This document and the proprietary marks and names
used herein are protected by international law.
![]() | Code Generation Error Messages | File Status Codes | ![]() |