TSO-ISPF JCL COBOL VSAM DB2 CICS IMS-DB Tools Articles Forum Quiz Interview Q&A

Status Codes for Logical Relationships

IMS DB returns a status code that helps us the success or failure of the IMS call on the COBOL program. The status code should be validated for each IMS call on the program to determine whether the call is successful or not.

The COBOL program should verify for expected status codes. If an unexpected status code is encountered, the program should be able handle it appropriately(abending the program).

There are three types of IMS status code.

  1. Informational: The status code returned by the IMS is neither good or bad. the application program must determine if the result is good or bad.

    For example: End-of-file status

  2. Program Error: The call itself was not attempted because the information passed to DL/I is invalid. This is always an abend condition and should only be encountered during testing.

    For example: The segment name is misspelled.

  3. IOError:The call was attempted but an IO Error was encountered. An unusual occurrence, should cause an abend.

Listed below IMS DB status codes with description:(highlighted important status code)

Status CodeDescription
bbSuccessful call. where, bb - Blank
AAThe alternate PCB contains a transaction code instead of a logical terminal as a destination
AB No segment input/output area specified
AC SSA's not in hierarchical sequece
AD Invalid function parameter
AF Size of variable length record is invalid for GSAM get access
AH Atleast one SSA is required
AI Data management open error
AJ SSA qualification format invalid
AK Invalid field name in call
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 Call function conflicts with processing option
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 Input/Output 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 Segment key field has been changed
DJ No preceding successful GH call
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 Input/Output 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 Crossed hierarchical boundary
GB End of database
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 Different segment type at same level returned
GL LOG request has an invalid log code
GP No parentage established
II Segment already exists(update)
IX Violated insert rule
LB Segment already exists(load)
LC Segment keys are out of sequence
LD Segment's parent has not been loaded
LE Different sequence of sibling segments from the DBD
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 Violated replace rule
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 Input/Output 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

If you have any doubts or queries related to this chapter, get them clarified from our Mainframe experts on IBMMainframer Community!

Are you looking for Job Change? Job Portal