Appendix B
Run-Time Messages
This appendix describes the messages that the PL/I run-time library writes when a program ends because of a condition it does not handle.
B.1. Message Format
When a condition is raised and no ON-unit handles it, the default PL/I handler raises the ERROR condition (see Section 9.5.1, “Default Handling for Main Procedures”). If no ERROR ON-unit handles that either, the run-time library writes a report on standard error, deletes the program's temporary files, and ends the program with exit status 46.
The report has the following form. The lines in brackets appear only when they apply:
PL/I unhandled exception at 0xaddress:condition-message[status-message] [IOERROR, I/O error on file 'file'.] [FILENAME, File name: 'name'.] [KEYWAS, Key was 'key'.] [detail-message]
addressThe address, in hexadecimal, of the instruction at which the condition was raised.
condition-messageThe message for the condition that was raised.
status-messageThe message for the status value of the error, the value that the ONCODE built-in function returns (see Section 9.8.1, “ONCODE Built-In Function”), when it differs from the condition.
- IOERROR, FILENAME and KEYWAS
For an error in an I/O statement: the name of the file constant, the name of the file it was connected to, and, for a KEY condition, the key.
detail-messageFor an I/O error, the message for the specific error, such as
RNF, Record not found.
Most messages begin with an identification, such as RNF, followed by a comma and the text. The
identifications are the names of the status values without their prefix: RNF is the message for
RMS$_RNF and NOKEY the message for PLI$_NOKEY. Section B.2, “Messages with Identifications” lists these messages alphabetically by identification; Section B.3, “Messages without Identifications” lists the others.
In the message texts, italic words stand for values that the run-time library fills
in.
B.2. Messages with Identifications
ACC, File access failed (must be opened NO_SHARE).Explanation: An operation on a file failed because it needs access to the file that other users of the file prevent.
User Action: Open the file with the ENVIRONMENT option NO_SHARE, or run the program when no other program has the file open.
ACCVIO, Access violation.Explanation: The program referred to memory that it is not allowed to read or write.
User Action: Look for a pointer or based variable that refers to storage that was never allocated or has been freed, a subscript outside the bounds of an array, or a mismatch between the parameters of a procedure and the arguments passed to it.
AREA, PL/I AREA condition.Explanation: The AREA condition was raised, either by a SIGNAL AREA statement or by the run-time library.
User Action: If the run-time library raised the condition, the message that follows gives the reason.
AREA_ACTIVE, Operation attempted on an already active area.Explanation: The run-time library found that an area it was about to operate on is already in use by another operation. This typically happens when an area is being changed both by a signal handler and by the code it interrupted, or when the area is in shared memory and is being changed by more than one process at once.
User Action: Change the program so that an area is not changed by two operations at the same time, or handle the condition with an ON-unit.
AREA_ASSIGN, Target area in area assignment is too small.Explanation: In an area assignment, the target area is too small to hold the extent of the source area.
User Action: Make the target area larger, or add an ON-unit to handle the condition.
AREA_FORMAT, Operation attempted on an incorrectly formatted area.Explanation: The run-time library found an area to be incorrectly formatted while allocating or freeing a variable in it, or while assigning from it.
User Action: The area may be corrupt because it was never initialized with the EMPTY built-in function, or because of invalid pointer references or data access. Correct the program.
AREA_FREE, Error detected deallocating a variable in an area.Explanation: A FREE statement for a variable in an area was not valid. For example, the variable being freed extends beyond the end of the area, extends into a free part of the area, or is already in a free part of the area. This normally happens when a variable of a different size from the one originally allocated is freed, or when a variable is freed more than once.
User Action: Correct the logic of the program.
AREA_FULL, No room for variable allocation in area at addressaddress.Explanation: An allocation in an area failed because the area does not have enough contiguous free space for the variable. The address is shown in hexadecimal.
User Action: Make the area larger, free variables in it that are no longer needed, or handle the AREA condition with an ON-unit.
AREA_INACTIVE, Attempt to unlock an area failed.Explanation: The run-time library could not release its lock on an area after operating on it. This can happen when an area is assigned to while another operation on it is in progress, since an area assignment cannot be fully interlocked.
User Action: Change the program so that it does not assign to an area while another operation on the area is in progress.
AREA_SIZE, Impossible to allocate variable in area.Explanation: An allocation in an area failed because the variable is larger than the whole area, so it could not be allocated even if the area were empty.
User Action: Make the area larger, or allocate the variable somewhere else.
AUTOINIT, Error in automatic initialization.Explanation: An automatic variable declared with the INITIAL attribute could not be initialized. The cause can be a negative repetition factor in the initial list, or too few or too many values for an array. Automatic unconnected aggregates cannot be initialized.
User Action: Correct the initial list.
BADATTR, File attributes conflict with request.Explanation: The attributes of a file conflict with the operation requested on it. This message indicates an error in the compiler or the run-time library.
User Action: Report the problem to Endless Software Solutions, with as much information as possible about the circumstances in which it occurred.
BASECTLINIT, Error in BASED or CONTROLLED initialization.Explanation: A BASED or CONTROLLED variable declared with the INITIAL attribute could not be initialized. The cause can be a negative repetition factor in the initial list, or too few or too many values for an array. BASED and CONTROLLED unconnected aggregates cannot be initialized.
User Action: Correct the initial list.
BIFSTAPOS, Starting position for a string built-in function is out of range.Explanation: The third argument of an INDEX, SEARCH or VERIFY built-in function is beyond the range of the string. The run-time library always checks this; in-line code checks it only if the procedure was compiled with the
--checkoption.User Action: Correct the third argument.
CHG, Invalid key change detected (CHANGES not set).Explanation: A REWRITE statement would change the key of a record, and the index does not allow keys to change.
User Action: Do not change the key in a REWRITE. To change a key, delete the record and write it again with the new key.
CNVERR, Conversion error.Explanation: An input or output value could not be converted, either by the default rules (for example, in list-directed stream I/O) or as the corresponding format item specifies (in edit-directed stream I/O).
User Action: Check the data and the logic of the program. For edit-directed I/O, check that each value is matched with the right format item.
CONAPPSUP, APPEND and SUPERSEDE conflict.Explanation: The ENVIRONMENT options APPEND and SUPERSEDE were both given for the same file.
User Action: Decide whether to add records to the end of the existing file or to replace it with a new one, and remove the other option from the DECLARE or OPEN statement.
CONATTR, Conflicting attributes specified while opening file.Explanation: A file was opened with attributes that conflict, either with each other or with the attributes in the file's declaration: for example, DIRECT and SEQUENTIAL, RECORD and STREAM, or more than one of INPUT, OUTPUT and UPDATE.
User Action: Decide the correct set of attributes for the file, and correct the file's declaration or the OPEN statement.
CONBLOKIO, BLOCK_IO conflicts with other attributes or options.Explanation: The ENVIRONMENT option BLOCK_IO was given for a file with one or more options that conflict with it.
User Action: Decide whether the file is to be opened for block I/O, and correct the file's declaration or OPEN statement.
CONDITION, PL/I CONDITION condition.Explanation: A user-defined condition was signaled with a SIGNAL CONDITION statement and there is no ON-unit for it. The default action prints
CONDITION, PL/I CONDITION(on standard error and continues the program.value)User Action: No action is needed. To act on the condition, add an ON-unit for it.
CONENVOPT, DECLARED option conflicts with OPEN option.Explanation: The value of an ENVIRONMENT option in the declaration of a file conflicts with the value given for it in the OPEN statement.
User Action: Decide which value is correct, and correct the declaration or the OPEN statement.
CONFIXLEN, FIXED_LENGTH_RECORDS conflicts with other attributes or options.Explanation: The ENVIRONMENT option FIXED_LENGTH_RECORDS was given for a file with an option that conflicts with it.
User Action: See Chapter 5, Options of the ENVIRONMENT Attribute for the options that conflict, and correct the program.
CONPRINTCR, CARRIAGE_RETURN_FORMAT conflicts with PRINT attribute.Explanation: A file with the PRINT attribute cannot have the ENVIRONMENT option CARRIAGE_RETURN_FORMAT: PL/I supplies the carriage control for a PRINT file.
User Action: Decide whether the file is to be a PRINT file, and correct the file's attributes.
CONPRTFRM, PRINTER_FORMAT conflicts with other attributes or options.Explanation: The ENVIRONMENT option PRINTER_FORMAT conflicts with the CARRIAGE_RETURN_FORMAT option and with the PRINT and STREAM attributes.
User Action: Correct the file's attributes.
CONTROLC, Operation completed under CTRL/C.Explanation: The program was interrupted from the keyboard.
User Action: No action is needed.
CONVERSION, PL/I CONVERSION condition.Explanation: An invalid character was found while converting character data to another type. For example, the colon in
'12:4'raises CONVERSION if the string is converted to a FIXED value.User Action: Correct the data, or add an ON-unit for the CONVERSION condition. In the ON-unit, the ONSOURCE and ONCHAR built-in functions return the string and the character in error, and the pseudovariables of the same names can correct them.
CONVFILE, on file 'file'.Explanation: Follows a CONVERSION message when the conversion was part of an I/O statement, and gives the name of the file constant.
User Action: None.
CREINDEX, Attempting to create an indexed file. Use the cif utility.Explanation: An earlier run-time library could not create indexed files, and gave this message when a program tried. The current library creates an indexed file when a KEYED file with ENVIRONMENT(INDEXED) that does not exist is opened for OUTPUT or UPDATE.
User Action: None.
CUR, No current record.Explanation: A DELETE or REWRITE statement without the KEY option was executed when there is no current record: for example, before any READ statement, or after the current record was deleted.
User Action: Read the record first, or give the KEY option.
CVTPICERR, Error in picture conversion.Explanation: A value could not be edited as the picture specifies.
User Action: If the value is negative, check that the picture has a sign character. Check that the picture has enough digit positions for the value.
DEADLOCK, Deadlock detected.Explanation: Two or more processes are each waiting for a record or file that another of them has locked.
User Action: Change the programs so that they lock records in the same order, or so that they do not wait for locked records.
DECOVF, Decimal overflow.Explanation: The result of a fixed-point decimal operation or conversion is too large for its precision. This is reported as the FIXEDOVERFLOW condition.
User Action: Give the target a larger precision, or check the logic of the program. If the overflow is expected, handle FIXEDOVERFLOW with an ON-unit.
DEL, RFA-accessed record deleted.Explanation: The record addressed by a RECORD_ID_FROM option has been deleted.
User Action: Check the record identification, or handle the error with an ON-unit.
DUP, Duplicate key detected (DUPLICATES not set).Explanation: A WRITE or REWRITE statement would put a key in an index that does not allow duplicate keys, and a record with the same key already exists. For indexed files, only the first 20 bytes of a key are kept, so keys that differ only after byte 20 are duplicates.
User Action: Check the key, or handle the error with an ON-unit.
ENDSTRING, End of string encountered during GET STRING or PUT STRING.Explanation: A GET STRING statement tried to read past the end of the source string, or a PUT STRING statement tried to write past the end of the target string. This happens most often when a GET STRING statement with the LIST option reads a string that does not end with a blank or a comma.
User Action: Check the length of the string and the data types in the GET or PUT list, and correct the program.
FILENAME, File name: 'name'.Explanation: Follows the message for an I/O error, and gives the name of the operating-system file on which the operation failed.
User Action: Check that this is the file you expected: that the TITLE option and any defaults gave the right name.
FLK, File currently locked by another user.Explanation: The file could not be opened because another process has it locked.
User Action: Run the program when the other process has closed the file, or open the file with sharing options that both programs allow.
FLTDIV, Floating/decimal divide by zero.Explanation: A floating-point or decimal division had a divisor of zero. This is reported as the ZERODIVIDE condition.
User Action: Correct the logic of the program, or handle ZERODIVIDE with an ON-unit.
FLTOVF, Floating overflow.Explanation: The result of a floating-point operation is too large to represent. This is reported as the OVERFLOW condition.
User Action: Correct the logic of the program, or handle OVERFLOW with an ON-unit.
FLTUND, Floating underflow.Explanation: The result of a floating-point operation is too small to represent. This is reported as the UNDERFLOW condition.
User Action: Correct the logic of the program, or handle UNDERFLOW with an ON-unit.
FNF, File or object not found.Explanation: The file named by the TITLE option, or by the file name, does not exist.
User Action: Check the file name and the current directory, or create the file first.
FORMATOVFL, Too many iteration factors or remote formats.Explanation: A format list is too complex to be interpreted.
User Action: Simplify the format list of the stream I/O statement.
FPE, Floating point exception.Explanation: A floating-point operation failed for a reason other than overflow, underflow or division by zero: for example, an invalid operation such as the square root of a negative number.
User Action: Correct the logic of the program.
FXCSIZ, FIXED_CONTROL_SIZE incorrect.Explanation: The size of the variable in a FIXED_CONTROL_FROM or FIXED_CONTROL_TO option does not match the size of the file's fixed-control area.
User Action: Correct the size of the variable, or check that the right file is being used.
INCRETURN, RETURN statement is incompatible with ENTRY.Explanation: A procedure does not have the RETURNS attribute, but an entry point in it has the RETURNS option and executed a RETURN statement.
User Action: Give the PROCEDURE statement the RETURNS option, or remove it from the ENTRY statement.
INTDIV, Integer divide by zero.Explanation: An integer division had a divisor of zero. This is reported as the ZERODIVIDE condition.
User Action: Correct the logic of the program, or handle ZERODIVIDE with an ON-unit.
INTERNAL, PL/I compiler/run-time error. Please submit an SPR.Explanation: An internal error occurred in the compiler or the run-time library.
User Action: Report the problem to Endless Software Solutions, with as much information as possible about the circumstances in which it occurred.
INTOVF, Integer overflow.Explanation: The result of an integer operation is too large for its precision. This is reported as the FIXEDOVERFLOW condition.
User Action: Give the target a larger precision, or check the logic of the program. If the overflow is expected, handle FIXEDOVERFLOW with an ON-unit.
INVBKTSIZ, Invalid BUCKET_SIZE specified.Explanation: The value of the ENVIRONMENT option BUCKET_SIZE is not in the range 0 through 32.
User Action: Correct the value.
INVBLKSIZ, Invalid BLOCK_SIZE specified.Explanation: The value of the ENVIRONMENT option BLOCK_SIZE is not 0 and is not in the range 20 through 65532.
User Action: Correct the value.
INVDATYP, Invalid data type for record I/O.Explanation: A variable in a record I/O statement does not have a computational data type, or it is an unconnected array or structure, an unaligned bit string, or an aggregate of unaligned bit strings.
User Action: Check that the right variable is named. If it is an aggregate, you may have to change its dimensions or structure so that it is connected.
INVDFNAM, Invalid DEFAULT_FILE_NAME.Explanation: The value of the ENVIRONMENT option DEFAULT_FILE_NAME is not a valid character string, or is longer than 128 characters.
User Action: Correct the expression, or the variable it refers to.
INVEXTSIZ, Invalid EXTENSION_SIZE specified.Explanation: The value of the ENVIRONMENT option EXTENSION_SIZE is not a valid integer in the range 0 through 65535.
User Action: Correct the value.
INVFMTPARM, Invalid format parameter specified.Explanation: A value given for a format item is not a positive integer, or is outside the range for that format item. For example, a negative width for an A or B format item, or a width greater than 31 for an F format item.
User Action: Correct the value in the format item.
INVFORGKEY, Invalid file organization for KEYED access.Explanation: The KEYED attribute was given for a file that cannot be accessed by key, such as a terminal or a pipe.
User Action: Check that the right file is being opened. If it is, remove the KEYED attribute from the file's attributes.
INVFXCSIZ, Invalid FIXED_CONTROL_SIZE specified.Explanation: The value of the ENVIRONMENT option FIXED_CONTROL_SIZE is not in the range 0 through 255.
User Action: Correct the value.
INVINDNUM, Invalid INDEX_NUMBER specified.Explanation: The indexed file has no index with the number given in the INDEX_NUMBER option. Only the primary index, number 0, is supported.
User Action: Remove the INDEX_NUMBER option, or give it the value 0.
INVMAXREC, Invalid MAXIMUM_RECORD_SIZE specified.Explanation: The value of the ENVIRONMENT option MAXIMUM_RECORD_SIZE is not in the range 0 through 32767.
User Action: Correct the value.
INVMLTBLK, Invalid MULTIBLOCK_COUNT specified.Explanation: The value of the ENVIRONMENT option MULTIBLOCK_COUNT is not a valid integer in the range 0 through 127.
User Action: Correct the value.
INVMLTBUF, Invalid MULTIBUFFER_COUNT specified.Explanation: The value of the ENVIRONMENT option MULTIBUFFER_COUNT is not a valid integer in the range -128 through 127.
User Action: Correct the value.
INVOWNGRP, Invalid OWNER_GROUP specified.Explanation: The value of the ENVIRONMENT option OWNER_GROUP is not a valid integer in the range 0 through 16383.
User Action: Correct the value.
INVOWNMEM, Invalid OWNER_MEMBER specified.Explanation: The value of the ENVIRONMENT option OWNER_MEMBER is not a valid integer in the range 0 through 65535.
User Action: Correct the value.
INVPROT, Invalid protection string specified.Explanation: The value of one of the ENVIRONMENT options GROUP_PROTECTION, OWNER_PROTECTION, SYSTEM_PROTECTION or WORLD_PROTECTION is not a valid string, is longer than four characters, or contains characters other than R, W, E and D (in upper or lower case).
User Action: Correct the value.
INVRADIX, An invalid radix was specified.Explanation: The radix given to the ENCODE or DECODE built-in function is not in the range 2 through 16.
User Action: Give a radix in the range 2 through 16.
INVRTVPTR, Invalid RETRIEVAL_POINTERS specified.Explanation: The value of the ENVIRONMENT option RETRIEVAL_POINTERS is not a valid integer in the range -1 through 127.
User Action: Correct the value.
INVSKIP, Invalid value for SKIP option specified.Explanation: The value of a SKIP option is zero on input, or negative.
User Action: Correct the value, or the variable it comes from.
INVSTRFMT, Invalid format item for STRING I/O.Explanation: One of the format items COLUMN, SKIP, LINE, PAGE or TAB was used in a GET STRING or PUT STRING statement, where they are not allowed.
User Action: Correct the format list.
INVSTRING, Invalid character encountered in string.Explanation: The string given to the DECODE built-in function contains characters that are not valid.
User Action: Remove the invalid characters.
INVTIME, Invalid timeout value specified.Explanation: The timeout given for a record lock is not valid. The number of seconds to wait must be less than 256.
User Action: Correct the timeout value.
INV_KEY, Invalid KEY data type.Explanation: The data type of a key in an indexed file is not one that PL/I recognizes.
User Action: Check that the file has not been damaged. If it has, go back to an earlier copy.
IOERROR, I/O error on file 'file'.Explanation: An error occurred in an I/O operation on the file. The messages that follow give the cause.
User Action: See the messages that follow.
IOP, Operation invalid for file organization.Explanation: The I/O operation is not valid for the organization of the file: for example, a keyed operation on a file that is not indexed or relative.
User Action: Check the I/O statement and the file's attributes and ENVIRONMENT options.
KEY, Invalid record number key or key value.Explanation: The key or record number given in an I/O statement is not valid for the file: for example, a record number of zero or less.
User Action: Correct the key, or handle the KEY condition with an ON-unit.
KEYWAS, Key was 'key'.Explanation: Follows the message for a KEY condition on a file, and shows the key that caused it.
User Action: Check the key, or handle the KEY condition with an ON-unit.
KRF, Invalid key-of-reference.Explanation: The index named or numbered in the I/O operation does not exist in the file.
User Action: Correct the index number, or check that the right file is being used.
LABELRANGE, Uninitialized label subscript used.Explanation: A GOTO statement refers to a subscripted label through a variable that has no valid value.
User Action: Correct the logic of the program so that the variable has a valid value.
LINESIZE, Invalid LINESIZE specified.Explanation: The value of the LINESIZE option is not a positive integer, or exceeds the limit of 32767.
User Action: Correct the value.
LINOVRFLO, Line number overflow.Explanation: The number of lines on a page of a stream file exceeds the limit of 32767.
User Action: Correct the program, or handle the condition with an ANYCONDITION or VAXCONDITION ON-unit.
NEF, Not positioned to EOF.Explanation: A sequential WRITE was attempted on a file that is not positioned at its end.
User Action: Open the file with the ENVIRONMENT option APPEND to add records to the end, or position the file before writing.
NOCURREC, No current record.Explanation: A DELETE or REWRITE statement without the KEY option was executed for an UPDATE file, but there is no current record.
User Action: Read the record first, or give the KEY option.
NOFROM, No FROM specified or buffer not allocated.Explanation: A REWRITE statement without the FROM option is valid only if a previous READ statement for the file used the SET option.
User Action: Add the FROM option to the REWRITE statement, or use the SET option on the READ statement.
NOKEY, No KEY or KEYFROM specified.Explanation: A keyed I/O statement for a DIRECT file must have a KEY or KEYFROM option.
User Action: Add the option. If the file is to be read or written in sequence, give it the SEQUENTIAL attribute.
NOSELECT, No WHEN clause selected and no OTHERWISE specified.Explanation: None of the WHEN clauses of a SELECT group was selected, and the group has no OTHERWISE clause.
User Action: Add an OTHERWISE clause to the SELECT group.
NOSHARE, SHARED_READ or SHARED_WRITE conflict with NO_SHARE.Explanation: The ENVIRONMENT options SHARED_READ and SHARED_WRITE allow a file to be shared, and NO_SHARE forbids all sharing; they cannot be given together.
User Action: Decide whether the file is to be shared, and remove the options that do not apply.
NOTIMPL, Language feature not implemented for PL/I for ULTRIX/RISC.Explanation: The program uses a feature that this version of the run-time library does not implement: for example, a nonzero INDEX_NUMBER, or one of the IBM dialect ENVIRONMENT options such as KEYLENGTH, KEYLOC or GENKEY.
User Action: Remove the feature from the program.
NOTINDEXED, Requested operation requires an INDEXED file.Explanation: A keyed I/O statement requests an operation that is valid only for an indexed file.
User Action: Check, from the FILENAME message, that the operation was applied to the right file. If the file should be indexed, declare it with ENVIRONMENT(INDEXED).
NOTINPUT, Attempting to GET from an OUTPUT or UPDATE file.Explanation: A GET statement is not valid for a file opened with the OUTPUT or UPDATE attribute.
User Action: Correct the file's attributes.
NOTKEYD, Not a KEYED file.Explanation: A KEY or KEYFROM option was given in a record I/O statement for a file without the KEYED attribute.
User Action: If the file is to be accessed by key, give it the KEYED attribute in its DECLARE or OPEN statement.
NOTOUT, Attempting to PUT to an INPUT or UPDATE file.Explanation: A PUT statement is not valid for a file opened with the INPUT or UPDATE attribute.
User Action: Correct the file's attributes.
NOTPRINT, PAGE or LINE specified for non-PRINT file.Explanation: The PAGE and LINE options and format items are valid only for a file with the PRINT attribute.
User Action: If the file is a stream output file meant for printing, give it the PRINT attribute.
NOTREC, Not a RECORD file.Explanation: A record I/O statement (READ, WRITE, DELETE or REWRITE) was executed for a file with the STREAM attribute.
User Action: Correct the file's attributes, or use stream I/O statements for the file.
NOTRELSQL, Not a RELATIVE or SEQUENTIAL fileExplanation: The option to lock a nonexistent record can be used only with relative or sequential files.
User Action: Remove the LOCK_NONEXISTENT option, or use a different file organization.
NOTSQL, Not a SEQUENTIAL file.Explanation: A READ or WRITE statement without a KEY or KEYFROM option was executed for a file with the DIRECT attribute.
User Action: Decide whether the file is to be accessed in sequence or by key, and correct the statement or the attributes.
NOTSTREAM, Stream I/O attempted on RECORD file.Explanation: A GET or PUT statement was executed for a file with the RECORD attribute.
User Action: Correct the file's attributes, remembering that some attributes, such as KEYED, imply RECORD.
NOTUPDATE, Attempting to REWRITE or DELETE an INPUT or OUTPUT file.Explanation: The REWRITE and DELETE statements are valid only for a file with the UPDATE attribute.
User Action: Correct the file's attributes.
NOVIRMEM, Virtual memory overflow.Explanation: The run-time library could not allocate memory, for example for an I/O buffer.
User Action: Reduce the memory the program uses, or raise the limit on the memory a process may use.
ONCNVPOS, The erroneous character is at positionposition.Explanation: Follows a CONVERSION message, and gives the position of the character in error in the source string.
User Action: Use the position to correct the data.
ONSNOTMOD, ONSOURCE value not modified.Explanation: A CONVERSION ON-unit ended normally, which retries the conversion, but it did not change the ONSOURCE value. To prevent an endless loop, the ERROR condition was raised instead.
User Action: In the ON-unit, correct the source with the ONSOURCE or ONCHAR pseudovariable, or leave the ON-unit with a GOTO statement.
ONSOURCE, The conversion source is 'string'.Explanation: Follows a CONVERSION message, and shows the string being converted.
User Action: None.
OPEN, Open failure.Explanation: An I/O statement opened a file implicitly, but the file could not be opened. The UNDEFINEDFILE condition was raised, and its ON-unit did not open the file.
User Action: Write an UNDEFINEDFILE ON-unit for the file that opens it, or open the file explicitly.
PAGESIZE, Invalid PAGESIZE specified.Explanation: The value of the PAGESIZE option is not a positive integer, or exceeds the limit of 32767.
User Action: Correct the value.
PAGOVRFLO, Page number overflow.Explanation: The number of pages in a stream file exceeds the limit of 32767.
User Action: Correct the program, or handle the condition with an ANYCONDITION or VAXCONDITION ON-unit.
POS, Invalid key position (greater than MRS).Explanation: The key position given for an index lies outside the maximum record size of the file.
User Action: Correct the key position, or the maximum record size.
PROMPTOBIG, PROMPT option too long. Must be less than 254 characters.Explanation: The string in the PROMPT option of a GET statement is longer than 253 characters.
User Action: Shorten the prompt.
PRV, Insufficient privilege or file protection violation.Explanation: The file could not be opened or created because its permissions, or those of its directory, do not allow it.
User Action: Check the permissions of the file and directory, or run the program as a user who has access.
READOUT, Attempting to READ from an OUTPUT file.Explanation: A READ statement is not valid for a file opened with the OUTPUT attribute. To read a file that has just been written, close it and open it again with the INPUT attribute.
User Action: Correct the program.
RECID, File not open for RECORD_ID_ACCESS.Explanation: The RECORD_ID_TO and RECORD_ID_FROM options are valid only if the file was opened with the ENVIRONMENT option RECORD_ID_ACCESS.
User Action: Add RECORD_ID_ACCESS to the ENVIRONMENT options of the file.
RECIDKEY, RECORD_ID conflicts with KEY or KEYFROM.Explanation: A record I/O statement cannot have both the RECORD_ID_FROM option and the KEY or KEYFROM option.
User Action: Correct the statement.
RECLOCOPT, Conflicting record-locking options requested.Explanation: A READ statement gives record-locking options that conflict with each other.
User Action: Correct the options.
RECORD, Record length does not match target length.Explanation: A record read by a READ statement is not the same length as the fixed-length variable it is read into, or an area is too small to hold the extent of the area being read into it.
User Action: Check that the variable is the right length for the records in the file.
REX, Record already exists.Explanation: A WRITE statement tried to write a record to a relative or indexed file at a position, or with a key, where a record already exists.
User Action: Use REWRITE to replace the record, or handle the error with an ON-unit.
RFA, Invalid record's file address (RFA).Explanation: The record identification given in a RECORD_ID_FROM option is not valid for the file.
User Action: Use only record identifications returned by a RECORD_ID_TO option for the same file.
RLK, Target record currently locked by another stream.Explanation: The record is locked by another process or another open of the same file.
User Action: Try again later, or use the WAIT_FOR_RECORD option.
RNF, Record not found.Explanation: No record has the key or record number given in the I/O statement. For indexed files, only the first 20 bytes of the key are compared.
User Action: Check the key, or handle the error with an ON-unit.
RNL, Record not locked.Explanation: The program tried to release a lock on a record that is not locked.
User Action: Correct the program.
RSZ, Invalid record size.Explanation: The size of a record being written is not valid for the file: for example, larger than its maximum record size, or a different size from the fixed records of the file.
User Action: Check the length of the variable written, and the record size of the file.
SEGV, Segment violation.Explanation: The program referred to memory outside its address space.
User Action: Look for a pointer or based variable that refers to storage that was never allocated or has been freed, a subscript outside the bounds of an array, or a mismatch between the parameters of a procedure and the arguments passed to it.
STORAGE, PL/I STORAGE condition.Explanation: Memory for an ALLOCATE statement could not be obtained.
User Action: Reduce the memory the program uses, or free variables that are no longer needed.
STROVFL, Stream item too big. Must be less than 1000 characters.Explanation: The run-time library cannot process a stream I/O item longer than 1000 characters.
User Action: Use a smaller field width, or more than one stream I/O statement.
STRRANGE, PL/I STRINGRANGE condition.Explanation: The arguments of a SUBSTR built-in function or pseudovariable, or the third argument of an INDEX, SEARCH or VERIFY built-in function, are outside the range of the string. The run-time library always checks this; in-line code checks it only if the procedure was compiled with the
--checkoption.User Action: Correct the reference.
STRSIZE, PL/I STRINGSIZE condition.Explanation: A string was assigned to a target too short to hold it, and the STRINGSIZE condition is enabled.
User Action: Correct the length of the target, or the value assigned to it.
SUBRANGE, Subscript range check error.Explanation: A subscript is outside the bounds of its array. This is checked only if the procedure was compiled with the
--checkoption.User Action: Correct the reference.
SUBRANGE, Subscriptnnrange check error.Explanation: Subscript
n(1 through 8) of an array reference is outside the bounds of that dimension. This is checked only if the procedure was compiled with the--checkoption.User Action: Correct the reference.
SUBRG, PL/I SUBSCRIPTRANGE condition.Explanation: A subscript is outside the bounds of its array. This is checked only if the procedure was compiled with the
--checkoption.User Action: Correct the reference.
SUBSTR2, Operand 2 of a SUBSTR is out of range.Explanation: The second argument of a SUBSTR built-in function or pseudovariable is outside the range of the string. This is checked only if the procedure was compiled with the
--checkoption.User Action: Correct the reference.
SUBSTR3, Operand 3 of a SUBSTR is out of range.Explanation: The third argument of a SUBSTR built-in function or pseudovariable is outside the range of the string. This is checked only if the procedure was compiled with the
--checkoption.User Action: Correct the reference.
TITLE, Invalid TITLE specified.Explanation: The string in the TITLE option is longer than 128 characters.
User Action: Use a shorter file name.
TMO, Timeout period expired (WAIT_FOR_RECORD).Explanation: A locked record did not become free within the time allowed.
User Action: Try again later, or allow a longer time.
TRANSMIT, PL/I compiler/run-time error. Please submit an SPR.Explanation: The TRANSMIT condition was raised. This message indicates an error in the compiler or the run-time library.
User Action: Report the problem to Endless Software Solutions, with as much information as possible about the circumstances in which it occurred.
TRE, Error in index tree (file corrupted).Explanation: The index of an indexed file is damaged.
User Action: Go back to an earlier copy of the file.
WRITEIN, Attempting to WRITE to an INPUT file.Explanation: A WRITE statement is not valid for a file opened with the INPUT attribute. To write to a file that has just been read, close it and open it again with the UPDATE attribute, or with the OUTPUT attribute and ENVIRONMENT(APPEND).
User Action: Correct the program.
B.3. Messages without Identifications
The messages for most of the PL/I conditions, and a few others, have no identification. They are listed here in alphabetical order.
- Invalid file control block or uninitialized FILE VARIABLE.
Explanation: An I/O statement refers to a file variable that has no value, or to a file whose control block has been damaged.
User Action: Check that every file variable is assigned a file constant before it is used.
- PL/I ANYCONDITION condition.
Explanation: ANYCONDITION was signaled by a SIGNAL statement, and there is no ON-unit for it.
User Action: Add an ON-unit for ANYCONDITION, or remove the SIGNAL statement.
- PL/I compiler/run-time error. Please submit an SPR.
Explanation: An internal error occurred in the compiler or the run-time library. In this version, the same text is also printed for the SIZE and NAME conditions.
User Action: Report the problem to Endless Software Solutions, with as much information as possible about the circumstances in which it occurred.
- PL/I ENDFILE condition on file '
file'. Explanation: A READ or GET statement tried to read past the end of the file, and there is no ENDFILE ON-unit for the file.
User Action: Add an ENDFILE ON-unit for the file.
- PL/I ENDPAGE condition on file '
file'. Explanation: A PUT statement took the line number past the page size of a PRINT file, and there is no ENDPAGE ON-unit for the file.
User Action: If the file is a terminal, the null ON-unit
ON ENDPAGE(SYSPRINT);makes PL/I ignore the condition. For other print files, write an ENDPAGE ON-unit to take the action you need, such as printing a heading.- PL/I ERROR condition.
Explanation: The ERROR condition was raised, and there is no ERROR ON-unit. It is usually followed by messages that give the error.
User Action: See the messages that follow.
- PL/I FIXEDOVERFLOW condition.
Explanation: The result of a fixed-point operation is too large for its precision, and there is no FIXEDOVERFLOW ON-unit.
User Action: Give the target a larger precision, or check the logic of the program. If the overflow is expected, add a FIXEDOVERFLOW ON-unit.
- PL/I internal FAB condition.
Explanation: An internal error occurred in the run-time library while opening or closing a file.
User Action: Report the problem to Endless Software Solutions, with as much information as possible about the circumstances in which it occurred.
- PL/I internal RAB condition.
Explanation: An internal error occurred in the run-time library during a record operation.
User Action: Report the problem to Endless Software Solutions, with as much information as possible about the circumstances in which it occurred.
- PL/I KEY condition on file '
file'. Explanation: An error occurred with the key in a keyed I/O statement, and there is no KEY ON-unit for the file. The messages that follow give the error and the key.
User Action: Check that the key is correct and can be converted to the type of the key of the file, and that the right file is being used. If appropriate, add a KEY ON-unit.
- PL/I Program FINISH condition.
Explanation: Identifies the FINISH condition. When there is no FINISH ON-unit, FINISH ends the program normally.
User Action: None.
- PL/I run-time error: File ident not valid. Please submit an SPR.
Explanation: An internal error occurred in the run-time library.
User Action: Report the problem to Endless Software Solutions, with as much information as possible about the circumstances in which it occurred.
- PL/I UNDEFINEDFILE condition on file '
file'. Explanation: The file could not be opened, and there is no UNDEFINEDFILE ON-unit for it. The messages that follow give the reason.
User Action: See the messages that follow. Check, from the FILENAME message, that the file name is the one you expected.
- PL/I ZERODIVIDE condition.
Explanation: A division had a divisor of zero, and there is no ZERODIVIDE ON-unit.
User Action: Correct the logic of the program. If practical, add a ZERODIVIDE ON-unit.
- Run-time library does not support indexed files. Re-link with -isam option.
Explanation: A program that uses indexed files was linked without indexed file support.
User Action: Link the program with indexed file support.
- Unknown condition:
decimal(0xhexadecimal). Explanation: The condition value has no message. The value is shown in decimal and hexadecimal.
User Action: For a condition value from a SIGNAL statement or a system service, look up the value. Otherwise, report the problem to Endless Software Solutions, with as much information as possible about the circumstances in which it occurred.
- VAXCONDITION condition:
value. Explanation: A VAXCONDITION was signaled with the given value, and there is no ON-unit for that value.
User Action: Check that the value in the SIGNAL statement matches the value in the ON statement.
B.4. Indexed File Messages
An error in an
operation on an indexed file (a file declared with ENVIRONMENT(INDEXED)) raises the ERROR condition. Most errors are
reported with the message of the corresponding status value: for example, a key that is not in the file gives
RNF, Record not found. and a duplicate key gives DUP, Duplicate key detected (DUPLICATES not
set). The errors in Table B.1, “Indexed File Messages” have no such status value, and are reported
with a message of their own, without an identification. Apart from File in use and Record is
in use, which arise when other processes are using the file, they usually mean that the program and the file
do not match, or that the file is damaged; if neither is the case, report the problem to Endless Software
Solutions.
| Message | Meaning |
|---|---|
Beginning of file | A sequential operation tried to move before the first record of the file. |
Deleted Record | The record has been deleted. |
Duplicate Index defined | An index with the same name already exists in the file. |
Explicit key required | The operation needs a key, and none was given. |
File in use | Another process has the file locked, so it cannot be opened or locked. |
Index not found | The file has no index with the name or number given. |
Invalid index | No index was named when the indexed file was opened. |
Invalid Keyed Relation | The relation requested for a keyed read is not valid. |
Invalid Record Number | The record number is zero, negative, or beyond the last record of the file. |
Item Index | The operation cannot be used with this kind of index. |
Key is not the same | The key given in a WRITE statement is not the key contained in the record. |
Long Record | The record is longer than the variable it is being read into. |
Not Item index | The operation can be used only with an index of another kind. |
Not locked to this process | The program tried to unlock a file that another process has locked. |
Not open for output | The program tried to lock a file for writing that was opened for INPUT. |
Record is in use | Another process has the record locked. |
Record too long | The record is longer than the maximum record length of the file. |
Record too short | The record is shorter than the minimum record length of the file, or too short to contain its key. |
B.5. Panic Messages
If the run-time library's own condition handling fails, it writes one of the following messages on standard error and ends the program at once with exit status 77, without running any ON-units:
Panic: Invalid PLI exception code, abortingPanic: PLI Signal Stack Overflow, abortingPanic: PLI Signal Stack Underflow, abortingPanic: PLI Signal error, aborting
A stack overflow can mean that ON-units are raising conditions without end. Otherwise, report the problem to Endless Software Solutions, with as much information as possible about the circumstances in which it occurred.