And if all job steps would otherwise require the same STEPLIB, it would
obviously be not only simpler but more efficient as well to use one
JOBLIB, so the datasets associated with the *LIB DD would only be
allocated once rather than repeatedly for each job step.

Other's mileage may vary, but it always seemed that most multi-step jobs
in our shop had many job steps that either didn't need a STEPLIB or that
required a unique STEPLIB, so we generally discouraged use of JOBLIB as
a matter of efficiency except for the rare cases where it did make sense.

Back in the old days with PDS libraries on real DASD and relatively
small or non-existent DASD cache, having many job steps needlessly
spinning through irrelevant PDS directories on repeated program fetches
just because it was "simpler" to use a JOBLIB could not only degrade
program fetch but could raise DASD device and channel usage, possibly to
the point other useful I/O would be degraded.  One would expect any
overhead or contention effects associated with an inappropriate JOBLIB
to be less significant with today's hardware and with PDSE libraries,
whose directories may be cached in main memory.
   Joel C Ewing

On 10/26/2013 07:37 AM, John McKown wrote:
> I think the doc is insufficient. What I believe that it should have said is
> something like:
> 
> If a job has multiple steps, all of which use program contained in the
> same, non-linklist/lpalist, data set(s), then using JOBLIB is simpler than
> using multiple STEPLIBs. However, if the steps within a job are a mixture
> of programs on the linklist/lpalib or distinch libraries, then using a
> STEPLIB only on the steps which require a STEPLIB and which only contains
> those libraries which are necessary, will result in more efficient program
> fetch. This is due to the fact that in a job with a JOBLIB, each step must
> search the specified libraries, in order, for the program on the EXEC PGM=
> and also those dynamically loaded using system services such as LINK or
> LOAD.
> 
> Yeah, that isn't phrased all that well, either. I'm not a tech writer.
> 
> My example. Suppose the job 10 steps and all the programs are in a given
> library. Then use a JOBLIB. But if your job is going to do 5 IDCAMS steps,
> 2 IEBGENERs, and 3 user programs, then use a STEPLIB. Or if the job is
> going to use 7 different programs which completely reside in 7 different
> libraries (i.e. any dynamic programs live in the same library), then use a
> unique STEPLIB in each step.
> 
> 
> 
> 
> 
> On Fri, Oct 25, 2013 at 10:56 PM, Ed Jaffe <[email protected]>wrote:
> 
>> On 10/23/2013 5:13 PM, Frank Swarbrick wrote:
>>
>>> I just read something interesting:
>>> http://publib.boulder.ibm.com/**infocenter/zos/basics/index.**
>>> jsp?topic=/com.ibm.zos.zjcl/**zjclc_jclEXECsearch.htm<http://publib.boulder.ibm.com/infocenter/zos/basics/index.jsp?topic=/com.ibm.zos.zjcl/zjclc_jclEXECsearch.htm>
>>> "For a multi-step job, using the JOBLIB DD statement is
>>> most efficient when most of the programs reside in private libraries.
>>>  For a multi-step job, using the STEPLIB DD statement is
>>> most efficient when most of the programs reside in system, rather than
>>> private,
>>> libraries."
>>>
>>
>> I find this surprising. AFAIK, there is no substantive difference between
>> JOBLIB and STEPLIB.
>>
>> --
>> Edward E Jaffe
>> Phoenix Software International, Inc
>> 831 Parkview Drive North
>> El Segundo, CA 90245
>> http://www.phoenixsoftware.**com/ <http://www.phoenixsoftware.com/>
>>

> 
> 


-- 
Joel C. Ewing,    Bentonville, AR       [email protected] 

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to