DAT2330 - Harold Smith Class - Wed Feb 9, 2000 - on lab test day, you must attend the section in which you are registered - you can bring one 8.5x11 sheet, one side, that you prepare yourself - I must see it ahead of time - test will include theory of MVS as well as JCL Today: reviewing MVS JCL Example 2 Homework Flow diagrams - not part of a test, not part of exam - not required of any programming shop - use it if you find it useful - do it any way you find useful Control statements - tell IDCAMS what to do, how to do it - it can do many things - IDCAMS lets us select our own DDnames - as long as they match the REPRO statements - (this is the only place in this course where we get to pick our own DDnames - everywhere else we must use the DDnames specified in the program we are using.) You can use the same DDnames in different steps (not in the same step) MVS JCL Example 2 Homework: See course outline for this week's JCL checklist Know the syntax rules - MVS will throw out whole job for one error. //coboltst job 4444,'some name',class=d, - positional parameters must be in this order - keyword parameters can vary; but, use the order I give so that you remember and I can mark - pick parameter closest to start of alphabet (d better than e) - which queue does class=d apply to? to the JES job queue // msgclass=d, - in which spool queue do we put JES job messages? - choose d for TSO viewing, or a for 500 lines on printer - indent JCL; may be told to write one parameter per line // msglevel=(2,1) - the level of detail of JES messages - specifications say not to show PROCs, but we don't know if GO.xxx is correct, so we should probably ask for PROC expansion - "input stream" means the JCL that we supply - go to the book first - (2, means do list JCL but not the PROCs. - ,1) means print all allocation messages // prty=14, - request highest priority in the job queue (class=d) - prty differs betwen JES2(14) and JES3 // typrun=scan, - "scan" means send JCL to JES and scan for errors - want to pre-scan the JCL so that final submission will run, when scheduled //cretap exec pgm=idcams - code DD names with instream data last (prof preference) //sysprint dd sysout=d - dog means go get it from TSO //out dd dsn=testdata,disp=(new,pass), // dcb=(blksize=2000,recfm=fb), - instream data appears as punch card data - 80 characters - dsorg defaults to be PS; don't specify it - lrecl defaults to instream - 80 columns; don't specify it - if your spec is wrong, job dies! - must block tape output to avoid waste - need to set up fixed blocking - ANSI label insists on BLKSIZE between 18 and 2048 (p.227) // label=(,al), - ANSI Label is second *positional* parameter - study all the label parameters from the book // unit=syssq, - request is for specific tape, cannot use scratch - you can leave out *all* positional parameters without leading commas // vol=ser=111111 //sysin dd * repro infile(in) outfile(out) /* //in dd * ...all the 1000 records of test data goes here... ...you would type it in using TSO... // exec proc=cobolclg - order of DD statements must match order of steps in PROC //cob.sysin dd * ...cobol source program goes here... /* //go.updtdsk dd dsn=tstmast,disp=(old,keep) - catalogued dataset has all the other info required //go.print dd sysout=d //go.xactlog dd dsn=translog,disp=(new,pass), - DCB not required - everything given in program - don't conflict with parameters already given in the program - don't copy examples, since classes and queues change on tests // unit=syssq, // vol=ser=222222 - want specific tape //go.tpin dd dsn=testdata,disp=(old,keep) - existing, passed dataset needs no other info - other stuff is known - cut and paste idcams step //viewlog exec pgm=idcams //sysprint dd sysout=d //out dd sysout=b - use appropriate printer spool queue - check spool queue classes //sysin dd * repro infile(in) outfile(out) /* //in dd dsn=translog,disp=(old,catlg) //