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
- AA
-
Explanation: IMS ignored a CHNG or ISRT call because the response
alternate PCB referenced in the call specified a transaction code as a
destination. A response alternate PCB must have a logical terminal specified
as its destination.
Programmer Response: Correct the CHNG or ISRT call.
- AB
-
Explanation: An I/O area is required as one of the parameters on this call
and the call did not specify one. After this status code is returned, your
position in the database is unchanged.
Programmer Response: Correct the call by including the address of an I/O
area as one of the call parameters.
- AC
-
Explanation: For call-level programs:
There is an error in an SSA for a DLET, a get, an ISRT, or a REPL call for one
of these reasons:
- DL/I could not find a segment in the DB PCB specified in the call that
has the segment name given in the SSA.
- The segment name is in the DB PCB, but the SSA specifying that segment name
is not in its correct hierarchic sequence.
- The call specifies two SSAs for the same hierarchic level.
IMS also returns this status code when a STAT call has an invalid statistics
function. After this status code is returned, your position in the database
is unchanged.
For command-level programs:
There is an error in one of WHERE or SEGMENT options on a get or ISRT command
for one of these reasons:
- DL/I could not find a segment in the DB PCB specified in the segment name
given in the SEGMENT option.
- The segment name is in the DB PCB, but the qualification for the command
does not specify it in its correct hierarchic sequence.
- The command specifies two SEGMENT options for the same hierarchic level.
Programmer Response: Correct the segment name in the SSA or SEGMENT option or
the statistics function in the STAT call.
- AD
-
Explanation: For call-level programs:
Either the function parameter on the call is invalid or the function is not
supported for the type of PCB specified in the call. Some possible reasons
are:
- The function parameter is invalid.
- A system service call used a PCB that is not the I/O PCB.
- A message GU or GN call used an alternate PCB instead of the I/O PCB.
- A database call used a PCB that is not a DB PCB.
- A message GU used the I/O PCB without specifying IN=trancode in the BMP JCL.
- A SETS or ROLS call included the I/O area but omitted the token.
For command-level programs:
A command was issued that is not supported in the environment; for example, a
system service command in an online program. If the command is correct, some
other possible causes are:
- Referencing a DB PCB on a system service command. System service commands
must reference the I/O PCB.
- Referencing an I/O PCB for a database command, or not defining an I/O PCB
before issuing system service commands.
Programmer Response: Be sure that the function specified is valid for the
PCB specified by the request.
- AF
-
Explanation: GSAM detected a variable-length record whose length is
invalid on a GU, GHU, GN, or GHN.
Programmer Response: Correct the program.
- AH
-
Explanation: The program issued an ISRT call (load or add) that did not
include any SSAs. ISRT calls require SSAs. If the program was issuing a GU
call to a GSAM database, the GU did not specify an RSA. RSAs are required on
GU calls to GSAM databases. After this status code is returned, your position
in the database is unchanged.
Programmer Response: Correct the ISRT call by including a qualification,
or correct the GU call by adding an RSA to the call.
- AI
-
Explanation: A data management open error occurred. Some possible
reasons are:
- There is an error in the DD statements.
- Neither DD statements nor DFSMDA dynamic allocation members were provided
for this database.
- The data set OPEN request did not specify load mode, but the data set was
empty. An empty data set requires the load option in the PCB.
- The buffer is too small to hold a record that was read at open time. See
the storage estimates in IMS/ESA System Administration Guide for
specification of the minimum buffer pool size.
- There were no DD statements or DFSMDA members supplied for logically-related
databases.
- For an OSAM data set, the DSORG field of the OSAM DCB, DSCB, or JFCB does
not specify PS or DA.
- For an old OSAM data set, the BUFL or BLKSIZE field in the DSCB is zero.
- The data set is being opened for load, and the processing option for one or
more segments is other than L or LS.
- The allocation of the OSAM data set is invalid. The allocation is probably
(1,,1) rather than (1,1) and this causes the DSORG to be P0.
- The processing option is L, the OSAM data set is old, and the DSCB LRECL
and/or BLKSIZE does not match the DBD LRECL and/or BLKSIZE.
- Incorrect or missing information prevented IMS from determining the block
size or the logical record length.
- A catalog was not available for accessing a VSAM database that was
requested.
- OS could not perform an OPEN, but the I/O request is valid. Either the data
definition information is incorrect, or information is missing.
- RACF was used to protect the OSAM data set and the control region has no
update authorization.
If IMS returns message DFS0730I, you can determine the cause of the OPEN
failure from this message in the job log. For more information, see the
description of this message in IMS/ESA Messages and Codes.
Programmer Response: These kinds of problems often require the help of a
system programmer or system administrator. But before you go to one of these
specialists, there are some things you can do:
- Check the DD statements. Make sure that the ddname is the same as the name
specified on the DATASET statement of the DBD. The segment name area in
the DB PCB (call level), or in the DIB (command level) has the ddname of
the data set that couldn't be opened.
- Check the PSB and make sure that the appropriate processing options have
been specified for each of the DB PCBs that your program uses.
- AJ
-
Explanation: For call-level programs:
For calls such as SETS, ROLS, and INIT that provide parameters in the I/O
area, the format of the parameters in the I/O area is invalid.
For database calls such as get, DLET, REPL, and ISRT that include SSAs, the
format of one of the SSAs is invalid. The number in the segment level number
field of the DB PCB is the level number of the SSA that is invalid. Some
possible reasons for the invalid SSA format are:
- The SSA contains a command code that is invalid for that call.
- The relational operator in the qualification statement is invalid.
- A qualification statement is missing a right parenthesis or a Boolean
connector.
- A DLET call has multiple or qualified SSAs.
- A REPL call has qualified SSAs.
- An ISRT call has the last SSA qualified.
- An ISRT call that inserts a logical child segment into an existing database
includes the D command code. ISRT calls for logical child segments cannot be
path calls.
- The RSA parameter on a GSAM call is invalid.
- The SSA used an R, S, Z, W, or M command code for a segment for which there
are no subset pointers defined in the DBD.
- The subset command codes included in the SSA are in conflict; for example,
if one SSA contained an S status code and a Z status code, Fast Path would
return an AJ status code. S means to set the pointer to current position; Z
means to set the pointer to zero. You could not use these status codes in one
SSA.
- The pointer number following a subset pointer command code is invalid.
Either you didn't include a number, or you included an invalid character. The
number following the command code must be between 1 and 8, inclusive.
- The SSA included more than one R command code. An SSA may include only one
R command code.
- The size specified for the SSA is too small. After this status code is
returned, your position in the database is unchanged.
- In response to a SETS or ROLS call, the length of the I/O area is zero, the
LL field is less than 4, or the ZZ field is not zero.
- In response to an INIT call, the format of the I/O area is incorrect.
For command-level programs:
An ISRT command attempted to insert a logical child segment using a path
command. ISRT commands for logical child segments cannot be path
commands.
Programmer Response:
If you receive this status code on a SETS, ROLS, or INIT request, correct the
parameters provided in the I/O area.
If you receive this status code on a get, DLET, REPL, or ISRT request, correct
the invalid portion of the SSA. If you receive this status code on a GSAM
call, correct the RSA.
- AK
-
Explanation: For call-level programs:
An SSA contains an invalid field name: the field name isn't defined in the
DBD. The number in the segment level number field of the DB PCB is the level
number of the SSA that contains the invalid name.
You can also receive this status code if the program is accessing a logical
child through the logical parent. DL/I returns AK if the field specified in
the qualification has been defined for the logical child segment, and it
includes (at least partially) the portion of the logical child that contains
the concatenated key of the logical parent.
When you are using field level sensitivity, a field you specified in the SSA
has not been defined in the PSB. After this status code is returned, your
position in the database is unchanged.
For command-level programs:
A WHERE option contains an invalid field name. (The field name isn't defined
in the DBD.) The number in the DIBSEGLV field of the DIB is the level number
of the WHERE option that contains the invalid name.
Programmer Response: Correct the SSA or WHERE option.
- AL
-
Explanation: You get this status code if you:
- Issue a message call in a batch program
- Issue a ROLB, ROLS, or SETS request from a batch program under one of the
following conditions:
- The system log is not on direct access storage.
- The system log is on direct access storage, but dynamic backout has
not been specified using the BKO execution parameter.
Programmer Response: For cause 1, correct the program to not issue message
calls in a batch program. For cause 2, either change the program or put the
log on direct access storage with BKO specified on the execution
parameter.
- AQ
-
Explanation: The INQY call specifies an invalid function.
Programmer Response: Specify a valid subfunction. Valid INQY call
subfunctions are DBQUERY, ENVIRON, or null (8 blanks).
- AM
-
Explanation: For call-level programs:
The call function is not compatible with the processing option in the PCB, the
segment sensitivity, the transaction-code definition, or the program type.
The level number in the PCB is the level number of the SSA that is invalid.
Some of the reasons you might get this status code are:
- If you issue a retrieval call with the D command code in a program that
doesn't have the P processing option specified in the DB PCB that was
used for the call.
- If you issue a DLET or ISRT call to a terminal-related dynamic MSDB from a
program with no input LTERM present; for example, a batch-oriented BMP.
- If the subset pointer referenced in the SSA was not defined in the program's
PSB. For example, if your program's PSB specifies that your program can
use subset pointers 1 and 4, and your SSA referenced subset pointer 5, Fast Path
would return an AM status code to your program.
- If your program tried to use an S, Z, W, or M command code for a subset
pointer to which it was not pointer update sensitive, as defined in the
program's PSB.
- If a BMP, a CICS online program, a CICS shared database program, or an MPP
issues an ISRT call with the D command code when the program doesn't
have the P processing option specified in the DB PCB that was referenced in
the call. Batch programs do not need the P processing option to issue an ISRT
call with the D command code--unless the program uses field level sensitivity.
- If the processing option is L and the program issued a call other than an
ISRT call. Load programs can issue only ISRT calls.
- If a DLET, REPL, or ISRT call that references a DB PCB doesn't have the
necessary processing option for that call. The minimum processing
options for these calls are D for DLET; R for REPL; and I for ISRT.
- If you issue a DLET, REPL, or ISRT call for a segment to which the program
isn't sensitive.
- If you issue a CHKP call on a GSAM/VSAM data set opened for output.
- If you issue a GSAM call with an invalid call function code.
- If you issue an ISRT or DLET call for the index target segment or a segment
on which the index target is dependent in the physical database while
using an alternate processing sequence.
- If you issue a path replace where the program does not have replace
sensitivity, command code N is not specified, and the data for the
segment is changed in the I/O area.
- If you issue a call to a GSAM dummy data set. Any call to a GSAM dummy data
set is invalid.
- If GSAM could not obtain buffer space because the region size is too small.
This is shown by the value X'1C' in the field GBCRTNCD.
- If you issue a DLET, ISRT, or REPL call from a program where the TRANSACT
macro used at IMS system definition specified INQUIRY=YES for the input
message.
After this status code is returned, your position in the database is
unchanged.
For command-level programs:
The command is not compatible with the processing option in the PCB or segment
sensitivity. The level number in the DIB is the level number of the
qualification that is invalid. Some of the reasons you might get this status
code are:
- If you issue a path retrieval command in a program that doesn't have the P
processing option specified in the DB PCB that was used for the call.
- If the processing option is L and the program issued a command other than a
LOAD command. Load programs can issue only LOAD commands.
- If you issue a DLET, REPL, or ISRT command that references a DB PCB that
doesn't have the necessary processing option for that command. The
minimum processing options for these calls are D for DLET; R for REPL; and
I for ISRT.
- If you issue a DLET, REPL, or ISRT command for a segment to which the
program isn't sensitive.
- If you issue a CHKP command if a GSAM/VSAM data set is open for output.
- If you issue a GSAM call with an invalid call function code.
- If you issue an ISRT or DLET command for the index target segment or a
segment in the physical database on which the index target is dependent
while using an alternate processing sequence.
- If you issue a path replace where the program does not have replace
sensitivity, command code N is not specified, and the data for the
segment is changed in the I/O area.
- If you issue a call to a GSAM dummy data set. Any call to a GSAM dummy data
set is invalid.
Programmer Response: Correct the request, or make the necessary changes
in the PCB.
- AO
-
Explanation: There is a BSAM, GSAM, VSAM, or OSAM physical I/O error.
When issued from GSAM, this status code means that the error occurred when:
- A data set was accessed.
- The CLOSE SYNAD routine was entered. The error occurred when the last block
of records was written prior to closing of the data set.
IMS does not return an AO status code for write errors with BISAM, VSAM, and
OSAM.
If your program receives this status code after issuing a call, this call does
not cause the database to be stopped.
Programmer Response: Determine whether the error occurred during input or
output, and correct the problem. These problems usually require the help of a
system programmer or system administrator.
- AP
-
Explanation: A message or CHKP call is invalid because more than 4
parameters (or 5 if parameter count is specified) are in a message call or a
CHKP call issued in a transaction-oriented BMP. The following exceptions
apply:
- A batch-oriented BMP can issue a CHKP call with more than 4 (or 5)
parameters.
- One parameter after the I/O area parameter is allowed in order for the
application program to specify a MOD name in an ISRT call. This
parameter is counted towards the maximum of 4 (or 5) parameters.
Programmer Response: Correct the call.
- AT
-
Explanation: The length of the data in the program's I/O area is greater
than the area reserved for it in the control region. The length of the area
reserved is defined by the ACB utility program, DFSUACB0, and printed as part
of its output.
Programmer Response: If the program is in error, correct the program. If
the program is correct, a larger control region area can be reserved by
specifying parameters on the PSBGEN statement of PSBGEN.
- AU
-
Explanation: The total length of the SSAs in the database call is greater
than the area reserved for them in the control region. The length of the area
reserved is defined by the ACB utility program, DFSUACB0, and printed as part
of its output. After this status code is returned, your position in the
database is unchanged.
Programmer Response: If the program is in error, correct the program. If
the program is correct, increase the PSB SSA space defined in the PSBGEN.
- AY
-
Explanation: IMS ignored a message ISRT call because the logical terminal
referenced by the response alternate PCB currently has more than one physical
terminal assigned to it for input purposes.
Programmer Response: Ask the master terminal operator to determine (use
/DISPLAY ASSIGNMENT LTERM x) which physical terminals (2 or more) refer to
this logical terminal. Use the /ASSIGN command to correct the problem.
- AZ
-
Explanation: IMS ignored a PURG or ISRT call in a conversational program.
Some possible reasons are:
- Issuing a PURG call referencing the I/O PCB or an alternate response PCB.
Conversational programs can issue PURG calls only when the PURG call
references an alternate PCB that is not an alternate response PCB.
- Issuing a PURG call to send the SPA.
- Issuing an ISRT or a PURG call referencing an alternate PCB that is set for
an invalid destination, or a destination that IMS can't determine.
- Issuing an ISRT call referencing an alternate PCB whose destination is a
conversational transaction code when the first segment inserted isn't
the SPA; or when IMS can't determine whether or not the SPA was the first
segment inserted.
Programmer Response: Correct the PURG or ISRT call.
- A1
-
Explanation: You might get the A1 status for the following reasons:
- CHNG call against alternate response PCB when the application has not yet
issued a GU.
- CHNG call where MSC routing exit returned return code 4 (use originating
system id to route the message back to the original system), but the
application has not yet issued a GU.
- CHNG call where MSC routing exit returned return code 8 (return A1 status
code).
- The destination name supplied in the I/O area of a CHNG call is invalid.
- The destination name supplied in the I/O area of a CHNG call is valid (the
destination is a program and the PCB is not an alternate response PCB),
but the transaction is Fast Path exclusive.
- AUTH call parameter list contained an invalid generic CLASS name. No access
checking was done.
Programmer Response: Correct the CHNG or AUTH call.
- A2
-
Explanation: The program issued a CHNG call against an invalid PCB. The
PCB was invalid for one of these reasons:
- It was not an alternate PCB.
- It was an alternate PCB, but it wasn't modifiable.
- It was being used to process a message and had not completed processing it.
Programmer Response: Check the PCB that was used by the CHNG call and
determine which PCB should have been used for the call.
- A3
-
Explanation: The program issued an ISRT or PURG call that referenced a
modifiable alternate PCB that did not have its destination set. IMS returns
this status code to PURG calls only when the PURG call specified an I/O area
as one of the parameters.
Programmer Response: Issue a CHNG call to set the destination of the
modifiable alternate PCB, then reissue the ISRT or PURG call.
- A4
-
Explanation: A security violation was detected during processing of an
AUTH call, a CHNG call, or a conversational response. Some of the reasons for
this status code are:
- Transaction authorization is active and either RACF or a transaction
authorization user exit returned a nonzero return code.
- The user is not authorized for access to the RESOURCE name in the class
requested in the AUTH call. No 'installation data' is returned.
- No source CNT is available, which may be caused by the application not
having issued a GU.
- A program-to-program message switch is being done. In this case, the
applicable authorization LTERM is based on the original message, and
this authorization does not allow this function to be performed.
Programmer Response: Check the transaction code to make sure it was
entered correctly. If it was, check with the person who handles security at
your installation.
- A5
-
Explanation: An ISRT or PURG call supplied an invalid parameter list.
The call supplied the fourth parameter (the MOD name) but the ISRT or PURG
being issued was not for the first segment of an output message.
Programmer Response: Correct the ISRT or PURG call.
- A6
-
Explanation: For a message processing program (MPP or BMP), IMS ignored a
message ISRT call because the length of the message segment being inserted
exceeds the size specified in the SEGSIZE keyword of the TRANSACT macro. For
a Fast Path program (IFP), the length of the output message to a Fast Path
terminal exceeds the size specified in the FPBUF parm of the TERMINAL
macro.
Programmer Response: Correct the output message segment.
- A7
-
Explanation: IMS ignored a message ISRT call because the number of
message segments inserted exceeds the number specified in the SEGNO keyword of
the TRANSACT macro.
Programmer Response: Check the output messages and correct them.
- A8
-
Explanation: IMS ignored an ISRT call because:
- An ISRT call to a response alternate PCB must not follow an ISRT call to the
I/O PCB.
- An ISRT call to the I/O PCB must not follow an ISRT call to a response
alternate PCB.
Programmer Response: Correct the ISRT call.
- A9
-
Explanation: IMS ignored the ISRT call because:
- The ISRT call referenced an alternate response PCB defined as SAMETRM=YES,
but the PCB represented a logical terminal that isn't part of the
originating physical terminal. An alternate response PCB defined as
SAMETRM=YES must represent the same physical terminal as the physical
terminal associated with the originating logical terminal.
- The originating terminal is in response mode and the response alternate PCB
is not associated with that logical terminal.
IMS does not return this status code if the program makes either of these
errors while communicating with a terminal in a remote IMS system through
MSC.
Programmer Response: Determine whether the application program is in
error, the output logical terminal has been incorrectly reassigned (using the
/ASSIGN command), or if SAMETRM=YES should not have been specified for the
response alternate PCB.
- BA
-
Explanation: The request was not completed because it required access to
unavailable data.
Only the updates done for the current request, prior to the time it
encountered the unavailable data, are backed out. The state of the database
is as it was before the failing request was issued. If the request was REPL
or DLET, the PCB position was unchanged. If the request was a get type or
ISRT request, the PCB position is unpredictable.
For a DEDB, this status code may be returned if no updates have been made
since the last commit point. If updates have been made since the last commit,
a BB status code is returned instead.
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.
- BB
-
Explanation: Same as BA except all database updates that the program made
since the last commit point are backed out, and all nonexpress messages sent
since the last commit point are cancelled. The PCB position for all PCBs is
at the start of the database.
For a DEDB, this status code may be returned if updates have been made since
the last commit point.
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.
- BC
-
Explanation: The response from an INIT STATUS GROUPB call was not
completed because it required access to unavailable data.
All database resources to the last commit point are backed out, with the
exception of GSAM and DB2. All output messages are backed out to the last
commit point. Input messages are requeued.
Programmer Response: This is an information-only status code.
- BJ
-
Explanation: All of the databases in the PSB are unavailable, or there
are no database PCBs in the PSB.
Each PCB (excluding GSAM) received an NA status code as the result of the INQY
DBQUERY call.
Programmer Response: This is an information-only status code.
- BK
-
Explanation: At least one of the databases included in the PSB is
unavailable or has limited availability.
At least one PCB received an NA or NU status code as the result of processing
the INQY DBQUERY call.
Programmer Response: This is an information-only status code.
- CA
-
Explanation: The program issued a CMD call with an invalid command verb,
or the command verb does not apply to the IMS system that the program's
running in. IMS does not return any command responses.
Programmer Response: Correct the command in the CMD call.
- CB
-
Explanation: The command entered in the CMD call is not allowed from an
AOI program. IMS does not return any command responses.
Programmer Response: Correct the command. For a list of the commands that an
AOI program can issue, see "Automated Operator Programming," in IMS/ESA
Customization Guide: Data Communication.
- CC
-
Explanation: IMS has executed the command and returned one or more
command responses.
Programmer Response: Your program should issue GCMD calls as necessary to
retrieve the responses.
- CD
-
Explanation: The command that was entered on the CMD call violates
security, or the application program isn't authorized to issue CMD calls. IMS
does not execute the command or return any command responses.
Programmer Response: Correct the command. If necessary, check with the
person in charge of security at your installation to find out why your program
is restricted from using that command.
- CE
-
Explanation: IMS rescheduled the message that this GU call retrieved
since the last CMD call. The program had not reached a commit point when the
message was rescheduled.
Programmer Response: This is an information-only status code.
- CF
-
Explanation: This status code can be returned only to programs that are
authorized to issue AOI commands (CMD calls). The message being returned on
the GU call was received by IMS before the start of this IMS execution. CF
can be received on a CHKP call whan an I/O area is specified for an MPP or
message-oriented BMP. This occurs when a CHKP call issues an internal GU
call.
Programmer Response: This is an information-only status code.
- CG
-
Explanation: The message retrieved by this GU originated from an AOI user
exit.
Programmer Response: This is an information-only status code.
- CH
-
Explanation: IMS ignored the CMD call just issued because the AOI command
interface detected a system error and was unable to process the command. IMS
processing continues.
Programmer Response: Reissue the command.
- CI
-
Explanation: CI is a combination of CE and CF. The message retrieved by
this GU was scheduled for transmission before IMS was last started. The
message was rescheduled, but the program hadn't reached a commit point.
Programmer Response: This is an information-only status code.
- CJ
-
Explanation: CJ is a combination of CE and CG. The message retrieved by
this GU was scheduled for transmission before IMS was last started. The
message originated from an AOI user exit.
Programmer Response: This is an information-only status code.
- CK
-
Explanation: CK is a combination of CF and CG. The message retrieved
with this GU originated from an AOI user exit. The message was scheduled for
transmission before IMS was last started.
Programmer Response: This is an information-only status code.
- CL
-
Explanation: CL is a combination of CE, CF, and CG. Please see the
explanations of those codes.
Programmer Response: This is an information-only status code.
- CM
-
Explanation: The command that was entered on the CMD call has been
executed and completed, but resulted in an exception response that could not
be built because of an insufficient amount of general work area (WKAP).
Programmer Response: Increase WKAP if you want retrieval of the response.
- CN
-
Explanation: The PSBIOASZ is defined for less than the minimum required
for CMD calls (132 bytes).
Programmer Response: Redefine PSBIOASZ for 132 bytes.
- DA
-
Explanation: The program issued a DLET or REPL that tried to modify the
key field in the segment or, when using field level sensitivity, a REPL call
tried to modify a field that had REPL=NO specified on the SENFLD STMT in the
PSB. You cannot change a segment's key field.
Programmer Response: Correct the request.
- DJ
-
Explanation: The program issued a DLET or REPL call that was rejected
because the segment was not currently in hold status. Some possible reasons
for this status code are:
- The segment had not been previously retrieved with a get hold call.
- The segment was already deleted using this PCB. After one get hold call,
multiple REPL calls or a DLET call following a REPL call are valid but
multiple DLET calls are not. valid but multiple DLET calls are not.
- The segment was obtained using a secondary index as the processing sequence.
A subsequent DLET or REPL call using either this PCB or another PCB
within the PSB caused the current secondary index entry for this PCB to
be deleted.
- A checkpoint call was issued following the get hold call and preceding the
REPL or DLET call.
Programmer Response: Correct the program so that the segment is in hold
status when a DLET or REPL is issued.
- DX
-
Explanation: The program issued a DLET that violates the delete rule for
that segment.
Programmer Response: Check the program to see whether or not the program
should delete that segment; if it should, check with your DBA (or the
equivalent specialist at your installation) to find out what delete rule has
been specified for that segment.
- FA
-
Explanation: IMS returns this status code when the program reaches a
commit point and an arithmetic overflow in an MSDB has occurred during that
commit interval (since the last commit point, or, if the program had not
reached a commit point, since the program began processing). You can receive
this status code on a SYNC call, a CHKP call, or a GU call to the message
queue, depending on your program. The overflow occurred after the program
issued a FLD/CHANGE call or a REPL call for the MSDB. When this happens, IMS
issues an internal ROLB call to eliminate the changes that the program has
made since the last commit point. All database positioning is lost.
Programmer Response: Reprocess the transaction.
- FC
-
Explanation: The program issued a request that is not valid for the
segment type.
Programmer Response: Correct the request.
- FD
-
Explanation: A nonmessage driven BMP reached a deadlock when IMS tried to
get DEDB or MSDB resources (either DEDB UOWs or overflow latches) for the
program. Or, a mixed mode BMP reached a deadlock on any resource, either Fast
Path or full function. IMS eliminates all database updates that the program
has made since the last SYNC call, CHKP request, or SYMCHKP command (or since
the program started processing, if the program hasn't issued a SYNC call or
CHKP request). All database positioning is lost, unless you specified the P
processing option in the PCB.
This status code is returned to the application program that issued the EXEC
DLI command rather than causing an abnormal termination.
Programmer Response: Start processing from the last commit point. If you
reach a deadlock again (and you usually won't), terminate the program.