Automatic IMS ABEND U0777 retry


The implementation of IMS ABEND U0777 retry requires a simple JCL change to applications using QUICKSTART’s IMS Checkpoint Replacement Mode. The application simply needs to run under QUICKSTART’s task manager, QSATTACH, instead of the IMS routine DFSRRC00. QSATTACH should then be executed with a PARM of “IMSXRST” and the PARM= parameter which had been passed to DFSRRC00 included as part of the QSCTRL1 DD control cards. For example, the JCL for a QUICKSTART-ready IMS application that reads:

//STEP01           EXEC PGM=DFSRRC00,REGION=4M,
//                 PARM='DLI,QSXRST,PSBNAME'
//STEPLIB          DD  DSN=IMST.RESLIB,DISP=SHR
//                 DD  DSN=QSTART.IMSLOAD,DISP=SHR
//                 DD  DSN=QSTART.LOADLIB,DISP=SHR
//                 DD  DSN=APPL.LOADLIB,DISP=SHR
//DFSRESLB         DD  DSN=IMST.RESLIB,DISP=SHR
//IMS              DD  DSN=IMST.PSBLIB,DISP=SHR
//                 DD  DSN=IMST.DBDLIB,DISP=SHR
//IMSERR           DD  SYSOUT=*
//SYSPRINT         DD  SYSOUT=*
//IEFRDER          DD  DSN=HLQ.IMSLOG,DISP=(NEW,CATLG,CATLG),
//                 UNIT=DISK,SPACE=(CYL,(10,10)),DCB=IMST.OLP01
//DFSVSAMP         DD  DSN=IMSVS.PROCLIB(DFSVSM01),DISP=SHR
//IMSLOGR          DD  DUMMY,DSN=HLQ.IMSLOG,DISP=SHR
//OUTDD01          DD  DSN=HLQ.OUTDD01,DISP=(MOD,CATLG,CATLG),
//                 SPACE=(TRK,(1,1)),UNIT=DISK,
//                 DCB=(RECFM=FB,LRECL=80,BLKSIZE=3120)
//OUTDD02          DD  DSN=HLQ.OUTDD02,DISP=(MOD,CATLG,CATLG),
//                 SPACE=(TRK,(1,1)),UNIT=DISK,
//                 DCB=(RECFM=FB,LRECL=80,BLKSIZE=3120)
//INDD01           DD  DSN=HLQ.INDD01,DISP=SHR
//QSTART           DD  DSN=HLQ.ANY.DATASET,DISP=SHR
//QSCTRL1          DD  *
MAINPROG=PGMNAME
CKPTRTN=CKPTIMS
GSAMOUT=OUTDD01
GSAMIN=INDD01
GSAMOUT=OUTDD02

Should be changed to:

//STEP01     EXEC PGM=QSATTACH,REGION=4M, Changed
//           PARM='IMSXRST’ Changed
//STEPLIB    DD   DSN=IMST.RESLIB,DISP=SHR
//           DD   DSN=QSTART.IMSLOAD,DISP=SHR
//           DD   DSN=QSTART.LOADLIB,DISP=SHR
//           DD   DSN=APPL.LOADLIB,DISP=SHR
//DFSRESLB   DD   DSN=IMST.RESLIB,DISP=SHR
//IMS        DD   DSN=IMST.PSBLIB,DISP=SHR
//           DD   DSN=IMST.DBDLIB,DISP=SHR
//IMSERR     DD   SYSOUT=*
//SYSPRINT   DD   SYSOUT=*
//IEFRDER    DD   DSN=HLQ.IMSLOG,DISP=(NEW,CATLG,CATLG),
//           UNIT=DISK,SPACE=(CYL,(10,10)),DCB=IMST.OLP01
//DFSVSAMP   DD   DSN=IMSVS.PROCLIB(DFSVSM01),DISP=SHR
//IMSLOGR    DD   DUMMY,DSN=HLQ.IMSLOG,DISP=SHR
//OUTDD01    DD   DSN=HLQ.OUTDD01,DISP=(MOD,CATLG,CATLG),
//           SPACE=(TRK,(1,1)),UNIT=DISK,
//           DCB=(RECFM=FB,LRECL=80,BLKSIZE=3120)
//OUTDD02    DD   DSN=HLQ.OUTDD02,DISP=(MOD,CATLG,CATLG),
//           SPACE=(TRK,(1,1)),UNIT=DISK,
//           DCB=(RECFM=FB,LRECL=80,BLKSIZE=3120)
//INDD01     DD   DSN=HLQ.INDD01,DISP=SHR
//QSTART     DD   DSN=HLQ.ANY.DATASET,DISP=SHR
//QSCTRL1    DD   *
PARM='DLI,QSXRST,PSBNAME' Changed
MAINPROG=PGMNAME
CKPTRTN=CKPTIMS
GSAMOUT=OUTDD01
GSAMIN=INDD01
GSAMOUT=OUTDD02


 

Tip: For faster searching, add an asterisk to the end of your partial query. Example: cert*

QUICKSTART for MVS 3.4