At 06:50 -0500 on 04/21/2015, John McKown wrote about Re: ENQ for the
life of the job:
ÐThe initiator (in general terms) is what reads the Ðparsed JCL and creates
the SWA control blocks which represent the job. This code then knows the
DSNs in the job and issues a single ENQ for _all_ of them before starting
the first step. As each step ends, the initiator does a DEQ on the DSNs
which are not going to be used in subsequent steps. At the end of the job,
it DEQs whatever DSNs are left.
While this description of ENQ and DEQ handling is correct it leaves
out the fact that due to a IMO major design flaw in the ENQ process
the Initiator can be forced to hold an ENQ for subsequent steps where
it is no longer needed. The case I am talking about is there is no
way to convert an EXC ENQ into a SHR one. The Initiator is forced to
keep an EXC ENQ active for steps where only SHR is what is
enough/desired. This design flaw in ENQ mains that if a DSN is
DISP=OLD/MOD in step 1 and DISP=SHR in all the following steps the
DISP=OLD/MOD ENQ is unnecessarily held until the last DISP=SHR step
(or the JOB) is over. This prevents other jobs that should be allowed
to run from being allowed to run due to the no longer needed EXC ENQ
being held during DISP=SHR steps.
In theory allowing the EXC->SHR ENQ change would be simple since all
that is needed is to alter the ENQ entry in the queue from EXC to SHR
and then drive the part of the DEQ routine that runs the queue to
release pending SHR entries that are waiting for the DEQ of the EXC
ENQ at the head of the chain.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN