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 Code | Description |
---|---|
AB | Segment I/O area is missing from call statement |
AC | Hierarchical error on insert or get call |
AD | Function argument is not coded correctly |
AF | Size of variable length record is invalid for GSAM get access |
AH | Invalid SSA encountered on insert call |
AI | Error opening database |
AJ | SSA specified for the call is invalid |
AK | Field name specified for qualified SSA is incorrectly coded or the field name isn't defined in the DBD. |
AL | Batch 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 |
AM | Function specified is not compatible with one of segment sensitivity, program type, or PCB processing |
AO | A physical I/O error has occurred, APa CHKP function issued a transaction oriented BMP or a message call has more than 4 parameters |
AT | I/O area specified is too small |
AU | Length for SSAs specified exceeds the maximum allowed |
AY | Logical terminal name found in a response alternate PCB has more than one physical terminal assigned |
AZ | A PURG or ISRT was ignored in a conversational program |
A1 | Logical terminal name specified incorrectly in I/O area for a CHNG call |
A2 | PCB specified incorrectly for a CHNG call |
A3 | PCB specified incorrectly for an ISRT or PURG call |
A4 | Security violation |
A5 | Parameter list specified incorrectly on ISRT or PURG call |
A6 | ISRT function message length exceeds allowable length |
A7 | ISRT function number of messages added exceeds maximum allowed |
A8 | ISRT function issued to a response alternate PCB must follow ISRT to I/O PCB and these statements are reversed |
A9 | ISRT function message to response alternate PCB ignored because SAMETRM=YES |
BA | Call not completed because data is not available, operations by current call up to this error have been backed out |
BB | Call not completed because data is not available, operations since last commit point have been backed out |
CA | CMD function command verb invalid |
CB | CMD function command from an AOI program not allowed |
CC | After command completed successfully, IMS returned one or more command responses |
CD | Program does not have authority to execute a command listed in this CMD function |
CE | IMS rescheduled a message as a result of a call with the function GU since the last CMD call |
CF | Message scheduled before IMS was started |
CG | Message retrieved by GU originated from an AOI user exit |
CH | Automated Operator Interface (AOI) encountered a system error, current command not ignored |
CI | IMS 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 |
CJ | IMS 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 |
CK | Message scheduled before IMS was started and message retrieved by GU originated from an AOI user exit |
CL | IMS 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 |
CM | Exception response occurred when executing a command issued via CMD call |
CN | Value in PSBIOAZ field is incorrect |
DA | REPL or DLET attempted to change segment key field |
DJ | Get hold issued after REPL or DLET |
DX | DLET violated delete rule for segment |
FA | Arithmetic overflow error |
FC | Call type and segment type are incompatible |
FD | Resource deadlock |
FE | FLD function received non blank status code in FSA |
FF | MSDB did not contain free space when ISRT was issued |
FG | FLD function received non blank status code in FSA and program has used all of buffer pool |
FH | DEDB was not accessible when database call was issued or commit point was reached |
FI | I/O area address not accessible to program |
FM | Randomizer did not return a DMAC address |
FN | Field name of FSA undefined in DBD and FLD function issued |
FP | Invalid hex or packed field in I/O area |
FS | Buffer limit for region exceeded |
FT | Number of SSAs exceeds limit of 15 for DEDB or 1 for MSDB |
FV | Verify operation failed at commit point |
FW | Program has used all of buffer pool |
GA | Call completed successfully but higher level crossed for GN or GNP call |
GB | End of database reached on GN call |
GC | Attempted to cross unit-of-work boundary |
GD | Position in database lost |
GE | Segment not found |
GG | Processing with procopt of GON or GOT and concurrent update activity is occurring |
GK | Call completed successfully but different segment type on same level retrieved for GN or GNP call |
GL | LOG request has an invalid log code |
GP | GNP issued but parentage was not previously established |
II | Attempt to insert a segment with a duplicate key |
IX | insert rule violation |
LB | attempt to load a segment that already exists |
LC | attempt to load a segment out of sequence |
LD | attempt to load a segment whose parent does not exist |
LE | hierarchical sequence in DBD does not match that in the segment to be loaded |
MR | terminal name invalid on ISRT message call |
NA | one or more databases not available |
NE | during index maintenance, a segment was not found |
NI | unique secondary index but duplicate key encountered |
NO | physical I/O error |
NU | information only, REPL DLET or ISRT may return BA status code |
QC | GU message request failed |
QD | GN requested but no more message segments exist |
QE | GN not followed by GU message request |
QF | length of message segment is less than 5 bytes |
QH | terminal symbolic error encountered |
RA | token does not match any on an outstanding SETS call |
RC | ROLS call was rejected |
RX | replace rule violation |
SA | storage space for I/O area unavailable on SETS call |
SB | attempted to set 10 levels (only 9 are allowed) |
SC | SETS call was rejected |
TA | CICS command level failed because PSB is not defined |
TC | PSB in use by previous request |
TE | unable to initialize the specified PSB |
TG | no PSB scheduled for program |
TH | no PSB scheduled for program |
TI | path to segment is invalid |
TJ | DL/I is not active |
TL | encountered conflict in scheduling intent |
TN | invalid system DIB was found |
TO | path replace error found |
TP | PROCOPT invalid |
TQ | I/O PCB access not allowed in a local DL/I call |
TR | CICS XDLIPRE exit cancelled a request |
TY | database is not open |
TZ | segment length longer than 64k |
UC | during batch processing, a checkpoint record was written to the utility control facility (UCF) dataset |
UR | during batch processing, IPL is restarted under UCF |
US | during batch processing, an IPL is halted |
UX | during batch processing both checkpoint and program halted |
VI | during an insert or update length of variable length segment is too long |