What’s LASTCC and MAXCC?
They are IDCAMS return codes, (or condition codes); they can only be used in IDCAMS control card.- LASTCC stores the condition code for the previous command.
- MAXCC stores the maximum code returned by all previous commands.
- Both LASTCC and MAXCC contain zero by default at the start of IDCAMS execution. so the "set MAXCC=8" command in one JCL step will not affect the MAXCC value at the beginning next JCL step.
Take an example:
//TESTIDCC JOB CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1),NOTIFY=&SYSUID
//*-----------------------------------------------------------------
//STEP01 EXEC PGM=IDCAMS
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *
SET MAXCC = 2
/*
//*-----------------------------------------------------------------
//STEP02 EXEC PGM=IDCAMS
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSIN DD *
IF MAXCC = 2 THEN -
ALLOCATE DATASET('<UID>.TEST.DATA.MAXCC') -
LRECL(80) -
RECFM(F B) -
BLKSIZE(800) -
SPACE(1,1) CYL
/*
In this case <UID>.TEST.DATA.MAXCC will NOT be created.
What’s valid values for LASTCC and MAXCC?
LASTCC and MAXCC can be set to any value between 0-16;, following are typical values:- 0 : command executed with no errors
- 4 : warning - execution may go successful
- 8 : serious error - execution may fail
- 12 : serious error - execution impossible
- 16 : fatal error - job step terminates
How to change LASTCC and MAXCC value?
IDCAMS command “set MAXCC/LASTCC=value”- Setting MAXCC has no effect on LASTCC.
- Setting LASTCC changes the value of MAXCC, if LASTCC is set to a value larger than MAXCC.