On Tue, Sep 2, 2014 at 9:42 AM, Paul Gilmartin <[email protected]> wrote: > On Tue, 2 Sep 2014 09:27:07 -0500, John McKown wrote: >> >>I can only think of two reason people still use IEFBR14 in this >>manner. The first is that it predates the existence of IDCAMS. And so >>"inertia" has set in. The other reason is that by being in JCL, the >>DSN, or portion, can be a symbolic parameter. ... >> >>//DELIT PROC NODE=T >>//DELIT EXEC PGM=IKJEFT01, >>// PARM='DEL aaa&NODE..REST.OF.NAME' >>//SYSTSPRT DD SYSOUT=Z >>//SYSTSIN DD DUMMY >>// PEND >> > Of course, z/OS 2.1 provides symbol substitution in the SYSIN to IDCAMS. > >>But we've gotten even lazier. We just use a CA-11 step in _all_ (even >>programmers submitted) jobs as the first step. That lets _it_ find and >>delete all DISP=NEW datasets referenced in the JCL. >> > (But not, I hope, "DISP=(,CATLG)". Isn't the default disposition > "(,DELETE)"?) > > "first step"? Not last? It deletes data sets about to be created?
Yes. That is its entire purpose in life. It deletes _every_ DSN (with some exceptions such as SYS1 and others in a customer supplied exclusion list) which the internal control blocks (SWA) says that the job is going to try to create. It runs as the first step so that it can scan the SWA. It checks for DSNs which the job is going to try to create (regardless of disposition of CATLG, DELETE, or KEEP) and actually, internally, uses IDCAMS DELETE to delete them in the first step. At least as I understand what I was told by one of the writers of the package. One reason for this exclusion list was the number of people who would mess up their JCL so that the DISP was missing or the JCL converter/interpreter would "comment it out". This saves "critical" DSNs from being deleted. IIRC, it was done after a sysprog had a JOB with SYS1.LINKLIB (to which he had ALTER access) in a DD and simply forgot the DISP. Bye-bye to SYS1.LINKLIB. And then, soon thereafter, bye-bye system. > Or does it modify control blocks for the remainder of the job? Well, if the job is a restart, it will "mess around" with the relative GDG numbers properly so that the restarted job will actually restart in the failing step. It also updates internal control block from the data base it maintains in order to "post" the previous run's return codes into the proper control blocks in the current run with the values from the previous run, then bypass those steps so that they don't actually run. This way, any COND= and IF statements would work just as they would have in the previous jobs, had it not abended. But we only use the restart function of CA-11 for jobs submitted by CA-7. > > -- gil > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to [email protected] with the message: INFO IBM-MAIN -- There is nothing more pleasant than traveling and meeting new people! Genghis Khan Maranatha! <>< John McKown ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
