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 |