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

Reply via email to