IMS DB/DC Return Codes

The IMS return codes are listed here alphabetically in this and two other pages, you may browse through them or you may enter the code you are looking for and press the enter key to go directly to the error message in the correct file.

AA AB AC AD AF AH AI AJ AK AL AQ AM AO AP AT AU AY AZ A1 A2 A3 A4 A5 A6 A7 A8 A9 BA BB BC BJ BK CA CB CC CD CE CF CG CH CI CJ CK CL CM CN DA DJ DX FA FC FD FE FF FG FH FI FM FN FP FR FS FT FV FW GA GB GC GD GE GG GK GL GP II IX LB LC LD LE MR NA NE NI NO NU QC QD QE QF QH RA RC RX SA SB SC TA TC TE TG TH TI TJ TL TN TO TP TQ TR TY TZ UC UR US UX V1 V2 V3 V4 V5 V6 V7 XA XB XC XD XE XF XG XX X1 X2 X3 X4 X5 X6 X7 X8 X9 Blanks
FE
Explanation: IMS returns this status code anytime a program issues a FLD call that receives a nonblank status code in the FSA.

Programmer Response: See "Fast Path Data Areas" in IMS/ESA Application Programming: DL/I Calls for an explanation of FSA status codes and correct the FLD call.


FF
Explanation: A program issued an ISRT (add) call against an MSDB that has no free space. If IMS determines that there is no free space when the program issues the ISRT call, the program receives the FF status code for that call. IMS may not determine this until the program reaches the next commit point. In this case, IMS returns FF when the program issues a GU call to the message queue, a SYNC call, or a CHKP call, depending on which call caused the commit point.

Programmer Response: To avoid this situation, you can specify more space for the MSDB at the next system start (cold start or normal restart).


FG
Explanation: FG is a combination of FE and FW. A batch-oriented BMP issued a FLD call that received a nonblank status code in the FSA, and the program has used up its normal buffer allocation.

Programmer Response: Check the FSA status code and correct the FLD call, then issue SYNC or CHKP calls in the program more frequently. One way to handle this status code is to branch to an error routine that causes the program to issue SYNC or CHKP calls more frequently when it receives this status code.


FH
Explanation: A DEDB area was inaccessible to the requested service when the program issued a database request or when the program reached a commit point.

If IMS returns this status code on a call that caused a commit point to occur (a SYNC call, a message GU, a CHKP request, or SYMCHKP command), IMS issues an internal ROLB call to eliminate the program's database updates and message output created since the last commit point.

If your program is accessing a DEDB in a data sharing environment, and if the authorization fails when your program issues its first DL/I call to the DEDB, Fast Path returned this status code. Fast Path also notified the master terminal operator of the authorization failure. Your position in the database is before the first root in the next area. A GN will get the next available record (unless that one is also inaccessible).

Note: If a program has access to an area through a PCB with PROCOPT=H and another PCB without PROCOPT=H, it is possible that only calls to the PCB with PROCOPT=H will receive the FH status code. This is because the area is accessible to IMS, but the required HSSP (high-speed sequential processing) setup could not be established. Message DFS0533A explains the reason for this occurrence and is sent to the job log. This status code is also returned if the PROCOPT for one PCB is more restrictive than the PROCOPT of a different PCB in the same PSB. Position is set to the beginning of the next accessible area.

This status code is returned to the application program that issued the EXEC DLI command rather than causing an abnormal termination.

Programmer Response: If the data in the area is important, contact the DBA. If the data in the area is unimportant, the program should roll back the changes. Your program can continue processing with the next available area.

If the status code is related to an HSSP setup problem, fix the error as described in the message DFS0533A in the job log.


FI
Explanation: The program's I/O area is not at a storage address that the program can access.

Programmer Response: Correct the program.


FM
Explanation: The application issued a request for which the randomizer returned a return code of 4.

This status code is returned to the application program that issued the EXEC DLI command rather than causing an abnormal termination.

Programmer Response: The database position has not changed. The application program must determine subsequent processing.


FN
Explanation: The program issued a FLD call that contains a field name in the FSA that is not defined in the DBD. IMS doesn't continue processing the FLD call or any of the FSAs in the FLD call. IMS returns an FN status code in this situation even if an earlier FSA in the same FLD call earned an FE status code.

Programmer Response: Issue a ROLB call to remove the effects of the incorrect FLD call and correct the FLD call.


FP
Explanation: The I/O area referenced by a REPL, ISRT or FLD/CHANGE call to an MSDB contains an invalid packed decimal or hexadecimal field.

Programmer Response: Correct the data in the I/O area.


FR
Explanation: One of the following situations exists:

IMS eliminates all database changes made by the program since the last SYNC call, CHKP request, or SYMCHKP command the program issued (or since the program started processing if the program hasn't issued any SYNC calls, CHKP requests, or SYMCHKP commands.) All database positions for PCBs not referring to a DEDB with PROCOPT=P or H active are lost. If the PCB referred to a DEDB with PROCOPT=P or H active, the position is set to the position valid after the last commit process, or the start of the valid range if there was no commit process.

This status code is returned to the application program that issued the EXEC DLI command rather than causing an abnormal termination.

Programmer Response: Either terminate the program and restart it with a larger buffer allocation, or provide a routine that causes frequent commit points. If PROCOPT=H is used, make sure that a commit point is requested after a GC code has been returned.


FS
Explanation: For a root segment or direct dependent segment, this status code is returned only to BMPs. For a sequential dependent segment, this status code can be returned to either a BMP or a message-driven program:

This status code is returned to the application program that issued the EXEC DLI command rather than causing an abnormal termination.

Programmer Response: Continue with other processing, and report the problem to the system programmer.


FT
Explanation: The Fast Path program issued a call to a Fast Path database that included too many SSAs. A call to a DEDB may include up to 15 SSAs. A call to an MSDB may include 1 SSA.

Programmer Response: Correct the call.


FV
Explanation: At least one of the verify operations in a FLD call issued in a batch-oriented BMP failed when the program reached a commit point. IMS eliminates the database updates the program has made since it issued the last SYNC or CHKP call (or if the program hasn't issued a SYNC or CHKP call, since the program started processing). All database positioning is lost.

Programmer Response: Reprocess the transaction or terminate the program.


FW
Explanation: A BMP has used all buffers that are allocated for normal use, or all buffers have been modified. IMS returns this status code to warn you that you may be running out of buffer space. An FR status code may be imminent.

If you have been processing a DEDB, you get FW for requests that change data.

If you have been processing a MSDB, you get FW for all calls that change data and for GH calls.

This status code is returned to the application program that issued the EXEC DLI command rather than causing an abnormal termination.

Programmer Response: You can supply an error-handling routine, triggered by the FW status code, that will cause your program to issue SYNC calls, CHKP requests, or SYMCHKP commands as soon as an FW status code is returned to your program. This reduces the total buffer requirement. To avoid receiving the FW status code, issue SYNC or CHKP calls more frequently.


GA
Explanation: In trying to satisfy an unqualified GN or GNP, IMS crossed a hierarchic boundary into a higher level.

If IMS returns GA after a STAT request, it means that the request just issued retrieved the total statistics for all the VSAM buffer subpools.

This status code is returned to the application program that issued the EXEC DLI command rather than causing an abnormal termination.

Programmer Response: This status code is an information-only status code. What you do next depends on your program.


GB
Explanation: In trying to satisfy a GN, DL/I reached the end of the database or, if you used a SETR statement, the end of the current range. In this situation, the SSA for the call or qualification for the command specified data beyond the last occurrence, and the search was not limited to the presence of a known or expected segment occurrence.

For example, a GN was specified for a key greater than a particular value, rather than a GU specifying a key value beyond the highest value.

A GB status code can be returned for:

In contrast, a GE status code, instead of a GB status code, can be returned for:

IMS also returns this status code when it has closed a GSAM data set. The assumed position for a subsequent request for a GSAM or full-function database is the beginning of the database, or if a SETR statement was used for a DEDB database, the beginning of the current range.

This status code is returned to the application program that issued the EXEC DLI command rather than causing an abnormal termination.

Programmer Response: User determined.


GC
Explanation: An attempt was made to cross a unit-of-work (UOW) boundary. For a batch-oriented BMP PCB with PROCOPT=H or PROCOPT=P, there was at least one call on the referenced PCB that changed position in the database since the last commit process or after the program began executing. IMS did not retrieve or insert a segment. Position is before the first segment of the following UOW.

This status code is returned to the application program that issued the EXEC DLI command rather than causing an abnormal termination.

Programmer Response: User determined. However, if the GC status code results from a call that referred to a PCB with PROCOPT=H, the program has to cause a commit process before any other call can be done to that PCB. Failure to do so results in an FR status code.


GD
Explanation: The program issued an ISRT that was not qualified for all levels above the level of the segment being inserted. For at least one of the levels for which no qualification was specified, a prior request using this PCB established valid position on a segment. That position is no longer valid for one of these reasons:

This status code is returned to the application program that issued the EXEC DLI command rather than causing an abnormal termination.

Programmer Response: User-determined.


GE
Explanation: For call-level programs: IMS returns this status code when:

For command-level programs:

This status code is returned to the application program that issued the EXEC DLI command rather than causing an abnormal termination.

Programmer Response: The action you take depends on your program.

Note: When a GNP call for a DEDB sequential dependent segment results in a GE status code, the I/O area contains a length indication of 10 bytes and the original position of the deleted portion of the sequential dependent part. Position is at the end of the sequential dependent chain.


GG
Explanation:
For call-level programs: DL/I returns this status code if the segment being retrieved contains an invalid pointer and the application program has a processing option of GOT or GON. (Processing options are explained under PROCOPT in the discussion of program specification block generation in IMS/ESA Utilities Reference.) This can occur when update activity in the database is going on concurrently with your program's processing. The PCB key feedback length and area will be based on the last segment that satisfied the call. Your position is at the beginning of the database.

For command-level programs: DL/I returns this status code if the segment being retrieved contains an invalid pointer and the application program has a processing option of GON or GOT. (Processing options are explained under PROCOPT in the discussion of program specification block generation in IMS/ESA Utilities Reference.) This can occur when update activity in the database is going on concurrently with your program's processing. If your request specified KEYFEEDBACK, the DIBKFBL will contain the length of the key of the last segment that satisfied the command. Your position is at the beginning of the database.

This status code is returned to the application program that issued the EXEC DLI command rather than causing an abnormal termination.

Programmer Response: Continue processing with another segment or terminate the program. The request that resulted in the GG status code may be successful if you issue it again.


GK
Explanation: DL/I has returned a different segment type at the same hierarchic level for an unqualified GN or GNP.

This status code is returned to the application program that issued the EXEC DLI command rather than causing an abnormal termination.

Programmer Response: This is an information-only status code.


GL
Explanation: The program issued a LOG request that contained an invalid log code for user log records. The log code in a LOG request must be equal to or greater than X'A0'.

DL/I returns GL on a DEQ request when the first byte of the I/O area referenced in the request did not contain a valid DEQ class (A-J).

Programmer Response: Correct the log code, which is the first byte of the log message. If the program received this status code for a DEQ request, check the DEQ class code in the I/O area.


GP
Explanation: The program issued a GNP when there is no parentage established, or the segment level specified in the GNP is not lower than the level of the established parent.

Programmer Response: Make sure you have established parentage before issuing GNP, and check the segment level specified by the GNP.


II
Explanation: The program issued an ISRT that tried to insert a segment that already exists in the database. Current position after an II status code is just before the duplicate of the segment you tried to insert. Some of the reasons for receiving this status code are:

This status code is returned to the application program that issued the EXEC DLI command rather than causing an abnormal termination.

Programmer Response: User determined.


IX
Explanation: The program issued an ISRT that violated the insert rule for that segment. Some of the reasons that IMS returns this status code are:

Programmer Response: Correct the ISRT, or the program.


LB
Explanation: The segment that the program tried to load already exists in the database. Other possible causes are:

This status code is returned to the application program that issued the EXEC DLI command rather than causing an abnormal termination.

Programmer Response: Correct the ISRT call or LOAD command, or find out if the load sequence is incorrect. Check with the DBA or the equivalent specialist at your installation.


LC
Explanation: The key field of the segment being loaded is out of sequence.

Programmer Response: Check the segment and determine where it should be loaded.


LD
Explanation: No parent has been loaded for the segment being loaded.

Programmer Response: Check the sequence of segments that have been loaded and determine where the parent should have been loaded.


LE
Explanation: The sequence of sibling segments being loaded is not the same as the sequence that is defined in the DBD.

Programmer Response: Check the sequence of the segments that are being loaded and correct.


MR
Explanation: IMS ignored a message insert (ISRT) call because the logical terminal referenced by the message requeuer segment is invalid.

Programmer Response: Verify the LTERM name supplied in the message requeuer segment.


NA
Explanation: The INIT call with DBQUERY in the I/O area or the QUERY command was issued, and at least one of the databases that could be accessed using this PCB was not available.

A request made using this PCB will probably result in a BA status code if the INIT 'STATUS GROUPA' has been issued or in a DFS3303I message and 3303 pseudo abend if it has not. An exception is when the database is not available because dynamic allocation failed. In this case, a request results in an AI (unable to open) status code.

Programmer Response: This is an information-only status code.


NE
Explanation: Indexing maintenance issued a DL/I call, and the segment has not been found. This status code is included in message DFS0840I. The system console receives message DFS0840I, "INDEX ERROR (dbdname) NE (first 45 bytes of key)," and the application program receives a blank status code.

An application program could have processed a secondary index as a database and thus deleted some of the secondary index entries. Subsequently, when a source segment is deleted, the secondary index for the source statement might not be present. For this reason, when the application program deletes a source segment and the index entry is not present, the DFS0840I message is sent to the system console, but a blank status code is returned to the application program.

Programmer Response: Determine whether the secondary index has been processed as a database and, as a result, the key included in the DFS0840I message was deleted. If this is not the case, check the cause for the index inconsistency with the database and correct it.


NI
Explanation: There is a duplicate segment in a unique secondary index. While IMS was inserting or replacing a source segment for a secondary index defined with a unique sequence field, the insertion of the secondary index segment was attempted but was unsuccessful because an index segment with the same key was found. One possible cause for a duplicate segment in the index is that the index DBD incorrectly specified a unique key value--secondary index only.

In an online application program, the call is backed out and the program receives an NI status code.

For a batch program that doesn't log to the IMS DASD log, IMS abnormally terminates the program with a U0828 abend. You should run batch backout.

For a CICS local DL/I or shared database application program, CICS abends the transaction and backs out all updates made by that logical unit of work (LUW).

Programmer Response: The response is determined by the user. If duplicate secondary index entries occur, specify the index as nonunique, and provide an overflow entry-sequenced data set.


NO
Explanation: A BSAM or VSAM physical I/O error occurred during a database request issued by the index maintenance function.

For an online program, all updates made for the call are backed out and the application receives the NO status code. For a batch program that does not log to the IMS DASD log, IMS abnormally terminates the program with an 826 abend. Run batch backout. For CICS local DL/I or shared database programs, CICS abends the transaction and backs out all the updates made by the logical unit of work (LUW).

Programmer Response: See accompanying messages giving details of the error. In a batch environment, execute batch backout.


NU
Explanation: An ISRT, DLET or REPL request using this PCB may result in a BA status code if the INIT STATUS GROUPA call or QUERY command has been issued or in a DFS3303I message or 3303 pseudo abend if it has not. If the unavailable database is only required for delete processing, it is possible that the ISRT and REPL requests can be processed.

Programmer Response: This is an information-only status code.


QC
Explanation: An MPP or transaction-oriented BMP issued a successful CHKP call, but the message GU call issued internally by the CHKP call was unsuccessful. There are no more messages in the queue for the program.

Programmer Response: This is an information-only status code.


QD
Explanation: The program issued a message GN, but there are no more segments for this message.

Programmer Response: Process the message.


QE
Explanation: The program issued a message GN call before issuing a GU to the message queue. In message-driven Fast Path programs, this code applies to message calls only. This code also applies to GCMD calls in AOI programs. It means that the program issued a GCMD call before issuing a CMD call. This code is also returned when a program issues a ROLB, specifying the I/O area parameter, without having issued a successful message GU call during that commit interval.

Programmer Response: Correct the program by either:


QF
Explanation: The length of the segment is less than 5 characters. The minimum length allowed is the length of the message text plus four control characters.

Programmer Response: Correct the segment.


QH
Explanation: There has been a terminal symbolic error. The output logical terminal name or transaction code is unknown to IMS. Some reasons for receiving this status code are:

Programmer Response: Check the logical terminal name or transaction code and correct it.


RA
Explanation: The token does not match a token for any outstanding SETS requests or the request was issued for a database PCB that did not get a BA status on the previous request.

Programmer Response: The outstanding SETS request may have been cancelled by a commit process, or an error exists in the use of the token.


RC
Explanation: The ROLS request was rejected because the PSB contains access to a DEDB, MSDB, or GSAM organization or has access to an attached subsystem.

Programmer Response: The ROLS request is invalid in this environment. The program must either remove the use of the database organization that is preventing the use of the ROLS call or not use the ROLS call.


RX
Explanation: The program issued a REPL that violated the replace rule for that segment.

Programmer Response: Correct the REPL, or check with the DBA or the equivalent specialist at your installation.


SA
Explanation: On a SETS request, IMS was not able to obtain the storage space for the data in the I/O area.

Programmer Response: A larger region size is required for the job step.


SB
Explanation: The maximum number of levels, nine, of SETS were already specified, and this request is attempting to set the tenth.

Programmer Response: Correct the program.


SC
Explanation: The SETS request was rejected because the PSB contains an access to a DEDB, MSDB, or GSAM organization or has accessed an attached subsystem.

Programmer Response: The SETS request is invalid in this environment. The program must either remove the use of the database organization that is preventing the use of the SETS request, or the program must not use the SETS request.


TA
Explanation: This status code applies to CICS online command-level programs only, and is returned following a scheduling request. It means that the PSB named in the request is not in the PSB directory.

Programmer Response: Correct the name of the PSB in the scheduling request, or add the PSB name to the PSB directory.


TC
Explanation: This status code applies to CICS online command-level programs only, and is returned following a scheduling request. It means that you have already scheduled a PSB.

Programmer Response: Correct your program so that you terminate a PSB before scheduling another. If you want to reschedule a PSB, you must have already terminated the PSB.


TE
Explanation: This status code applies to CICS online command-level programs only, and is returned following a scheduling request. It means that the PSB could not be scheduled; an initialization error occurred.

Programmer Response: See your system programmer or DBA. For a list of possible causes for the PSB initialization error, see the description under PSBFAIL under "Invalid Request Conditions" in the chapter "CICS-DL/I Interface Return Codes" in IMS/ESA Application Programming: DL/I Calls.


TG
Explanation: This status code applies to CICS online command-level programs only, and is returned following a terminate request. It means that the program issued a terminate request when there was no PSB scheduled.

Programmer Response: This is an information-only status code. If you only wanted to terminate a PSB, you should continue with processing. If you also wanted to cause a sync point, you should issue a SYNCPOINT command. (No sync point was caused by the unsuccessful terminate request.)

This status code is returned to the application program that issued the EXEC DLI command rather than causing an abnormal termination.


TH
Explanation: This status code applies to CICS online command-level programs only, and is returned following a database request, or a statistics request. It means that the program attempted to access the database before scheduling a PSB.

Programmer Response: Correct your program, and schedule a PSB before accessing the database.


TI
Explanation: This status code applies to command-level programs only, and is returned after an ISRT command. It means that the ISRT command defined an invalid path to the segment. Data must be transferred for all segments between the first segment named and the last one named.

Programmer Response: Correct the ISRT command, specifying a FROM option for each segment to be transferred.


TJ
Explanation: This status code applies to CICS online command-level programs only, and can be returned after any command used by a CICS online program. It means that DL/I is not active.

Programmer Response: Contact your DBA. CICS must be reinitialized with DL/I defined as active in the SIT.