Skip to main content

Fix JCLs

Here are some invalid JCLs template with atleast 1 error. Fix the JCL and execute them successfully.

Pre requiste before you can execute below JCL's

Create a dataset with RECFM=FB,LRECL=80,BLKSIZE to store the below REXX with name RETRC.

/* REXX RETURN EXPECTED RC */
PARSE ARG RETCD
SAY RETCD
IF DATATYPE(RETCD) <> 'NUM' THEN RETCD = 0
EXIT RETCD

Invalid JCLs to fix

note

Replace <Your ID> with your training id and <YOUR REXX EXEC> with your previously create REXX EXEC dataset which have RETRC member.

//<YOUR ID>A  JOB ,NOTIFY=&SYSU1D                             
//COMBINE EXEC PGM=IRXJCL,PARM='RETRC 2'
//SYSEXEC DD DSN=<YOUR REXX EXEC>,DISP=SHR
//SYSTSIN DD DUMMY
//SYSTSPRT DD DSN=&SYSU1D..EXERCISE.OUTPUT1,
// DISP=(MOD,CATLG),SPACE=(CYL,(2,2)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)
//<YOUR ID>B  JOB ,MSGLEVEL=0,1                             
//COMBINE EXEC PGM=IRXJCL,PARM='RETRC 2'
//SYSEXEC DD DSN=<YOUR REXX EXEC>,DISP=SHR
//SYSTSIN DD DUMMY
//SYSTSPRT DD DSN=&SYSUID..EXERCISE.OUTPUT2,
// DISP=(MOD,CATLG),SPACE=(CYL,(2,2)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)
//<YOUR ID>C  JOB ,NOTIFY=&SYSUID                             
//COMBINE EXEC PARM='RETRC 2',PGM=IRXJCL
//SYSEXEC DD DSN=<YOUR REXX EXEC>,DISP=SHR
//SYSTSIN DD DUMMY
//SYSTSPRT DD DSN=&SYSUID..EXERCISE.OUTPUT3,
// DISP=(MOD,CATLG),SPACE=(CYL,(2,2)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)
//<YOUR ID>D  JOB ,TYPRUN=SCAN,NOTIFY=&SYSUID                             
//COMBINE EXEC PGM=IRXJCL,PARM='RETRC 2'
//SYSEXEC DD DSN=<YOUR REXX EXEC>,DISP=SHR
//SYSTSIN DD DUMMY
//SYSTSPRT DD DSN=&SYSUID..EXERCISE.OUTPUT4,
// DISP=(MOD,CATLG),SPACE=(CYL,(2,2)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)
//<YOUR ID>E  JOB ,TYPRUN=HOLD,NOTIFY=&SYSUID                             
//COMBINE EXEC PGM=IRXJCL,PARM='RETRC 2'
//SYSEXEC DD DSN=<YOUR REXX EXEC>,DISP=SHR
//SYSTSIN DD DUMMY
//SYSTSPRT DD DSN=&SYSUID..EXERCISE.OUTPUT5,
// DISP=(MOD,CATLG),SPACE=(CYL,(2,2)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)
//<YOUR ID>F  JOB ,NOTIFY=&SYSUID
//OUTPUT1 EXEC PGM=IEFBR14
//SYSPRINT DD SYSOUT=*
// DD1 DD DSN=&SYSUID..EXERCISE.OUTPUT6,
// DISP=(MOD,CATLG),SPACE=(CYL,(2,2)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)
//<YOUR ID>G  JOB ,NOTIFY=&SYSUID
//OUTPUT1 EXEC PGM=IEFBR14
//SYSPRINT DD SYSOUT=*
// DD DSN=&SYSUID..EXERCISE.OUTPUT7,
// DISP=(MOD,CATLG),SPACE=(CYL,(2,2)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)
//<YOUR ID>H  JOB ,NOTIFY=&SYSUID
//OUTPUT1 EXEC PGM=IEFBR14
//SYSPRINT DD SYSOUT=*
//DD1 DD DSN=&SYSUID..EXERCISE,OUTPUT8,
// DISP=(MOD,CATLG),SPACE=(CYL,(2,2)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)
//<YOUR ID>I  JOB ,NOTIFY=&SYSUID
//OUTPUT1 EXEC PGM=IEFBR14
//SYSPRINT DD SYSOUT=*
//1DD DD DSN=&SYSUID..EXERCISE.OUTPUT9,
// DISP=(MOD,CATLG),SPACE=(CYL,(2,2)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)
//<YOUR ID>J  JOB ,TYPRUN=HOLD,NOTIFY=&SYSUID                             
//COMBINE EXEC PGM=IRXJCL,PARM=RETRC 2
//SYSEXEC DD DSN=<YOUR REXX EXEC>,DISP=SHR
//SYSTSIN DD DUMMY
//SYSTSPRT DD DSN=&SYSUID..EXERCISE.OUTPUTA,
// DISP=(MOD,CATLG),SPACE=(CYL,(2,2)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)
TODO PAVAN FIX THIS
//<YOUR ID>K JOB ,TYPRUN=HOLD,NOTIFY=&SYSUID
//COMBINE EXEC PGM=IRXJCL,PARM='LOOP 100000',COND=(,10)
//SYSEXEC DD DSN=<YOUR REXX EXEC>,DISP=SHR
//SYSTSIN DD DUMMY
//SYSTSPRT DD DSN=&SYSUID..EXERCISE.OUTPUTB,
// DISP=(MOD,CATLG),SPACE=(CYL,(2,2)),
// DCB=(RECFM=FB,LRECL=80,BLKSIZE=800)

Create Valid DD Statements

  1. Create A PS with a Fixed block type and Record size 98.
  2. Create A PDS with Fixed type with Block size 120.
  3. Create A valid DSORG=PO type dataset
  4. Create A Dataset with Secondary quantity of 20 CYLS
  5. Create A Dataset on ZAPRD4 volume.

DISP for new Dataset

Sample Job to try

//<YOUR ID>J  JOB ,NOTIFY=&SYSUID
//OUTPUT1 EXEC PGM=IEFBR14
//SYSPRINT DD SYSOUT=*
//DD1 DD DSN=&SYSUID..EXERDIST.OUTPUT1,
// SPACE=(CYL,(2,2)),DCB=(RECFM=FB,LRECL=80,BLKSIZE=800),
// <GIVE YOU DISP HERE>

Try Following DISP for the New Dataset in the Below JCL and note down your observations Note: Make sure to delete the dataset before running the job

  • NO DISPOSITION
  • (Only Status)
    • DISP=NEW, DISP=OLD, DISP=SHR, DISP=MOD
  • (Status and Normal)
    • DISP=NEW,KEEP DISP=OLD,KEEP, DISP=SHR,KEEP
    • DISP=NEW,CATLG DISP=OLD,CATLG
    • DISP=NEW,UNCATLG DISP=MOD,UNCATLG

DISP Parameter for Existing Dataset

Sample Job to try

//<YOUR ID>J  JOB ,NOTIFY=&SYSUID
//OUTPUT1 EXEC PGM=IEFBR14
//SYSPRINT DD SYSOUT=*
//DD1 DD DSN=&SYSUID..EXERDIST.OUTPUT1,
// SPACE=(CYL,(2,2)),DCB=(RECFM=FB,LRECL=80,BLKSIZE=800),
// <GIVE YOU DISP HERE>

Try Following DISP for the Existing Dataset in the Above JCL and note down your observations

  • NO DISPOSITION
  • (Only Status)
    • DISP=NEW, DISP=OLD, DISP=SHR, DISP=MOD
  • (Status and Normal)
    • DISP=NEW,KEEP DISP=OLD,KEEP, DISP=SHR,KEEP
    • DISP=NEW,CATLG DISP=OLD,CATLG
    • DISP=NEW,UNCATLG DISP=MOD,UNCATLG