//******************************************************* //* JCL for MVS LAB 2 from DAT2330 Winter 2000 //******************************************************* //* It is provided here as another example of JCL coding. //* //* There is one DDname guess in step three. //* A wrong DDname guess means a run-time error (not a JCL error). //* Since I have the COBOL source, I could read the source to find the DDNAME. //* If I don't understand COBOL, I would have to actually run this job //* to have the program generate an error message about the DDname needed. //* //* I had to make up (choose) two output dataset names. No comments //* are needed for that choice. (So ignore this comment!) //******************************************************* //* Real-World Note: We should SCAN this JCL before we submit to CLASS=F, //* since the job may be held up for a long time before it runs in that queue. //* Note: scanning the JCL will *not* help fix the DDname guess. //******************************************************* //COMBINER JOB MVSLAB2,'CELINE DION',CLASS=F, // MSGLEVEL=(1,0),MSGCLASS=L,PRTY=7 //************************************************************* //* STEP ONE - copy first tape to disk //* the secondary extent size was not given - choosing 10 blocks //************************************************************* //TAP2DSK1 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=A,HOLD=YES # <100 lines //OUT DD DSN=$CHOOSE1,DISP=(NEW,PASS), // BLKSIZE=4030,RECFM=FB, // UNIT=SYSDA, // SPACE=(4030,(231,10)) //IN DD DSN=TESTSET1,DISP=(OLD,DELETE), // LABEL=(,AL), // UNIT=SYSSQ,VOL=SER=200200 //SYSIN DD * REPRO INFILE(IN) OUTFILE(OUT) /* //************************************************************* //* STEP TWO - copy second tape to disk //* the secondary extent size was not given - choosing 10 blocks //************************************************************* //TAP2DSK2 EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=A,HOLD=YES # <100 lines //OUT DD DSN=$CHOOSE2,DISP=(NEW,PASS), // BLKSIZE=4050,RECFM=FB, // UNIT=SYSDA, // SPACE=(4050,(134,10)) //IN DD DSN=TESTSET2,DISP=(OLD,CATLG), // UNIT=SYSSQ,VOL=SER=200300 //SYSIN DD * REPRO INFILE(IN) OUTFILE(OUT) /* //************************************************************* //* STEP THREE - a PROC, containing three internal steps //* NOTE: I think the compiler listing will be longer than 500 lines. //* I'm guessing the $GUESS1 DDname because it was not given. //* An incorrect guess will cause a run-time error. //************************************************************* //COMBINE2 EXEC PROC=COBCLG //COMP.SYSPRINT DD SYSOUT=B,HOLD=YES # >500 lines //COMP.SYSIN DD * [...much COBOL source goes here...] /* //LKEDIT.SYSLIB DD DSN=MYTEAM.COBOL.TESTLIB,DISP=(SHR,KEEP) //RUN.$GUESS1 DD SYSOUT=L,FLASH=INVENTRY # 2560 lines //RUN.DATAOUT DD DSN=TESTOUT,DISP=(NEW,PASS), // UNIT=SYSDA, // BLKSIZE=3920,RECFM=FB, // SPACE=(3920,(375,38)) //RUN.BACKUP2 DD DSN=DATABACK,DISP=(NEW,KEEP), // BLKSIZE=1960,RECFM=FB, // LABEL=(,AL), // UNIT=SYSSQ,VOL=SER=200400 //RUN.DATAIN1 DD DSN=$CHOOSE1,DISP=(OLD,DELETE) //RUN.DATAIN2 DD DSN=$CHOOSE2,DISP=(OLD,DELETE) //************************************************************* //* STEP FOUR - print the disk dataset //************************************************************* //DUMPDSK EXEC PGM=IDCAMS //SYSPRINT DD SYSOUT=A # <100 lines //OUT DD SYSOUT=(D,,GREEN1), # 2*6000 lines // BURST=YES,COPIES=2 //IN DD DSN=TESTOUT,DISP=(OLD,CATLG) //SYSIN DD * REPRO INFILE(IN) OUTFILE(OUT) /* //