IMS DB Status Codes

Every DL/I call returns a status code in the PCB to indicate the outcome of the operation. These status codes help determine whether the call was successful, encountered an error, or reached a specific condition like the end of the database.

Categories of IMS Status Codes

IMS status codes can be broadly categorized into three types:

  • Informational Codes: Indicate specific conditions that aren't errors but require attention.
  • Program Errors: Result from issues in the program logic or incorrect parameters.
  • I/O Errors: Occur due to problems in accessing the database or system resources.

Here are some frequently encountered IMS status codes:

Status CodeDescription
ABSegment I/O area is missing from call statement
ACHierarchical error on insert or get call
ADFunction argument is not coded correctly
AFSize of variable length record is invalid for GSAM get access
AHInvalid SSA encountered on insert call
AIError opening database
AJSSA specified for the call is invalid
AKField name specified for qualified SSA is incorrectly coded or the field name isn't defined in the DBD.
ALBatch program has issued a ROLS, ROLB, or SETS call and either the system log does not reside on disk or dynamic backout is not specified 
AMFunction specified is not compatible with one of segment sensitivity, program type, or PCB processing
AOA physical I/O error has occurred, APa CHKP function issued a transaction oriented BMP or a message call has more than 4 parameters
ATI/O area specified is too small
AULength for SSAs specified exceeds the maximum allowed
AYLogical terminal name found in a response alternate PCB has more than one physical terminal assigned
AZA PURG or ISRT was ignored in a conversational program
A1Logical terminal name specified incorrectly in I/O area for a CHNG call
A2PCB specified incorrectly for a CHNG call
A3PCB specified incorrectly for an ISRT or PURG call
A4Security violation
A5Parameter list specified incorrectly on ISRT or PURG call
A6ISRT function message length exceeds allowable length
A7ISRT function number of messages added exceeds maximum allowed
A8ISRT function issued to a response alternate PCB must follow ISRT to I/O PCB and these statements are reversed
A9ISRT function message to response alternate PCB ignored because SAMETRM=YES
BACall not completed because data is not available, operations by current call up to this error have been backed out 
BBCall not completed because data is not available, operations since last commit point have been backed out 
CACMD function command verb invalid
CBCMD function command from an AOI program not allowed
CCAfter command completed successfully, IMS returned one or more command responses
CDProgram does not have authority to execute a command listed in this CMD function
CEIMS rescheduled a message as a result of a call with the function GU since the last CMD call
CFMessage scheduled before IMS was started
CGMessage retrieved by GU originated from an AOI user exit
CHAutomated Operator Interface (AOI) encountered a system error, current command not ignored
CIIMS rescheduled a message as a result of a call with the function GU since the last CMD call and message scheduled before IMS was started
CJIMS rescheduled a message as a result of a call with the function GU since the last CMD call and message retrieved by GU originated from an AOI user exit
CKMessage scheduled before IMS was started and message retrieved by GU originated from an AOI user exit
CLIMS rescheduled a message as a result of a call with the function GU since the last CMD call, message scheduled before IMS was started, and message retrieved by GU originated from an AOI user exit
CMException response occurred when executing a command issued via CMD call
CNValue in PSBIOAZ field is incorrect
DAREPL or DLET attempted to change segment key field
DJGet hold issued after REPL or DLET
DXDLET violated delete rule for segment
FAArithmetic overflow error
FCCall type and segment type are incompatible
FDResource deadlock
FEFLD function received non blank status code in FSA
FFMSDB did not contain free space when ISRT was issued
FGFLD function received non blank status code in FSA and program has used all of buffer pool
FHDEDB was not accessible when database call was issued or commit point was reached
FII/O area address not accessible to program
FMRandomizer did not return a DMAC address
FNField name of FSA undefined in DBD and FLD function issued
FPInvalid hex or packed field in I/O area
FSBuffer limit for region exceeded
FTNumber of SSAs exceeds limit of 15 for DEDB or 1 for MSDB
FVVerify operation failed at commit point
FWProgram has used all of buffer pool
GACall completed successfully but higher level crossed for GN or GNP call
GBEnd of database reached on GN call
GCAttempted to cross unit-of-work boundary
GDPosition in database lost
GESegment not found
GGProcessing with procopt of GON or GOT and concurrent update activity is occurring
GKCall completed successfully but different segment type on same level retrieved for GN or GNP call
GLLOG request has an invalid log code
GPGNP issued but parentage was not previously established
IIAttempt to insert a segment with a duplicate key
IXinsert rule violation
LBattempt to load a segment that already exists
LCattempt to load a segment out of sequence
LDattempt to load a segment whose parent does not exist
LEhierarchical sequence in DBD does not match that in the segment to be loaded
MRterminal name invalid on ISRT message call
NAone or more databases not available
NEduring index maintenance, a segment was not found
NIunique secondary index but duplicate key encountered
NOphysical I/O error
NUinformation only, REPL DLET or ISRT may return BA status code
QCGU message request failed
QDGN requested but no more message segments exist
QEGN not followed by GU message request
QFlength of message segment is less than 5 bytes
QHterminal symbolic error encountered
RAtoken does not match any on an outstanding SETS call
RCROLS call was rejected
RXreplace rule violation
SAstorage space for I/O area unavailable on SETS call
SBattempted to set 10 levels (only 9 are allowed)
SCSETS call was rejected
TACICS command level failed because PSB is not defined
TCPSB in use by previous request
TEunable to initialize the specified PSB
TGno PSB scheduled for program
THno PSB scheduled for program
TIpath to segment is invalid
TJDL/I is not active
TLencountered conflict in scheduling intent
TNinvalid system DIB was found
TOpath replace error found
TPPROCOPT invalid
TQI/O PCB access not allowed in a local DL/I call
TRCICS XDLIPRE exit cancelled a request
TYdatabase is not open
TZsegment length longer than 64k
UCduring batch processing, a checkpoint record was written to the utility control facility (UCF) dataset
URduring batch processing, IPL is restarted under UCF
USduring batch processing, an IPL is halted
UXduring batch processing both checkpoint and program halted
VIduring an insert or update length of variable length segment is too long