Please refer to the ‘MVS Initialization and Tuning Reference’ or the ‘MVS Initialization and Tuning Guide’
Time and time again I was told to reference either the “MVS Initialization and Tuning Reference” or the “ MVS Initialization and Tuning Guide” more than any other manuals in the entire z/OS Internet Library.
Both these manuals cover the settings and configuration of MVS which is for the most part everything that’s in the PARMLIB dataset.
Unfortunately these manuals are about as exciting as reading the phone book. Do I suggest Millennial Mainframers going through the entire manuals and comparing it to what your shop uses? Yes!
It took me awhile but I grabbed our shop’s SYS1.PARMLIB listing and went through the entire listing and looking up what each setting did in the the “Init and Tuning Reference” primarily, using my handy WikidPad to as I journeyed through.
I often reference my initial notes and discoveries to this day.
Why is PARMLIB so important?
If trying to use microprocessor terms, PARMLIB is like the System Settings in Windows or OS X. Within this dataset are the that defaults and setting for the entire z/OS system. Knowing where to poke around as a Systems Programmer or where to ask for changes is an essential skill set.
More often than not, if you’re having issues with z/OS the first place you will want to check is the PARMLIB.
Here’s a few important members just to give you an idea how PARMLIB works:
IEASYMxx
Defines static system symbols.
Now if I were to use the symbolic &SYSNAME in another member the system will translate this into TST1
PROGxx
PROGxx (authorized program list, exits, LNKLST sets and LPA)
The PROGxx parmlib member contains the following optional statement types:
- APF, which defines the format and contents of the APF-authorized program library list.
- EXIT, which controls the use of exits and exit routines.
- SYSLIB, which allows for the definition of alternate data sets for the system defaults (SYS1.LINKLIB, SYS1.MIGLIB, SYS1.CSSLIB, SYS1.SIEALNKE, SYS1.SIEAMIGE, and SYS1.LPALIB) at the beginning of the LNKLST and the LPALST concatenations.
- LNKLST, which controls the definition and activation of a LNKLST set of data sets for the LNKLST concatenation.
- LPA, (Link Pack Area) which defines the modules to be added to, or deleted from, LPA after IPL.
- REFRPROT, which indicates that REFR programs are protected. Use the REFRPROT statement type to specify that REFR programs are protected from modification by placing them in key 0, non-fetch protected storage, and page protecting the full pages
- NOREFRPROT, which indicates that REFR programs are not protected.
Adding APF authorization to libraries is sometimes a necessity when installing new software, and if not will result in a Return Code error when the system attempts to use these libraries. In this example there is three”APF ADD” statements.
In this example:
Line #4: ADD datasetname “ASM.SASMMOD1” and assigns the volume to ‘******‘ which means that the system is to use the volume serial number of the current system residence (SYSRES) volume. At our shop we have several “SYSRES” volumes and this can change depending on the LPAR
Line #5: ADD datasetname “BACU.PRODINFO.WEBA.LOAD” specifically using VOLUME(FIN002)
Line #6: ADD datasetname “BACU.TDLA.SIZDLOAD” which in on a volume that is SMS managed.
IEASYSxx
This is the grand daddy of all the members! This member as per the reference manual:
You can specify system parameters using a combination of IEASYSxx parmlib members and operator responses to the SPECIFY SYSTEM PARAMETERS message. You can place system parameters in the IEASYS00 member or in one or more alternate system parameter lists (IEASYSxx) to provide a fast initialization that requires little or no operator intervention.
In many cases the IEASYSxx define what the other members in PARMLIB will be using. For example CMD=00 completes the name of the parmlib member COMMNDxx which will be COMMAND00 , which contains commands to be issued internally during master scheduler initialization.
Here’s an example of IEASYSXX (system parameter list):
This is just a fragment of what an actual PARMLIB would consist of. Keep in mind if you made changes to the PARMLIB they might not even take effect until the next IPL or until you issue a refresh command of some kind. More importantly PARMLIB changes could seriously impact the system at large!
So please ‘PARMLIB‘ responsibly!