Chapter 5. Using Tivoli Workload Scheduler for z/OS effectively 115
For example, our JCL consisted of four records: A jobcard that continued over
two lines, an exec card, and a steplib. For approximately 25,000 members, that
equated to 3330 tracks for a PDSE and only 750 tracks for a PDS.
Obviously from a space perspective, the cheapest option was the model JCL,
because all our jobs followed the same model, so only one 4-line member was
needed. More information about the JCL fetch exits used, how to use them, and
where to obtain a copy can be found in Appendix A, “Using the EQQUX000 and
EQQUX002 exits” on page 177.
The use of LLA for the PDS directories
Some of the fetch time is attributable to the directory search. By placing the JCL
libraries under LLA, the directory search times are greatly improved.
The issue with doing this is the maintenance of the JCL libraries. Because these
libraries are allocated to a long running task, it is advisable to stop the controller
prior to doing an LLA refresh (alternatively, you can use the LLA UPDATE
command, as shown in the following note).
One alternative is to have a very small override library, that is not in LLA, placed
in the top of the EQQJBLIB concatenation for changes to JCL. This way, the
need for a refresh at every JCL change is avoided. The LLA refresh could then
be scheduled once a day or once a week, depending on the rate of JCL change.
The use of EQQUX000 and EQQUX002
The use of the exits saves the directory search from potentially running down all
the libraries in the EQQJCLIB concatenation by directing the fetch to a specific
library. In our tests, these libraries were all quite large, but had we used many
more libraries with fewer members in each, we would have recovered more time.
The use of model JCL is also one of the fastest methods of populating the JS file.
This has an additional benefit. If you can, as we did, have a single model of JCL
Note: An LLA refresh will allow changes made to the source libraries to be
picked up, but you can also use an LLA update command:
F LLA,UPDATE=xx
Where the CSVLLAxx member contains a NOFREEZE statement for the PDS
that needs to be updated.
Then another LLA update command, F LLA,UPDATE=yy, can be issued,
where CSVLLAyy contains a FREEZE statement for the source PDS library.
By doing the NOFREEZE and then the FREEZE commands, the need for an
LLA refresh is avoided