(The Intelligent QEXCLUDE Generation Utility)
by Ken Byers
[Editor's Note:] If you are responsible for installing MVS/QuickRef® at your site, you are certainly going to want to read this piece. Even if you're not charged with the installation task, read on to get an idea of how QuickRef® is tailored for your site's unique product mix.
Selective Database Load Overview
For a complete understanding of the requirement for an intelligent QEXCLUDE generation utility, we will begin with a quick review of the selective database load process and why it’s used.
The main database supplied with MVS/QuickRef® contains a vast amount of reference material stored under many different products. Within each product, reference information is stored as one or more items. You can use the QWIKSLCT utility to selectively load to DASD only those vendors and products you need. For example, if you are a CICS shop but not an IMS shop, you will probably want to discard the IMS messages, status codes, and user abends from the QuickRef® main database to decrease the amount of DASD space it occupies.
The selective database load process involves executing the QWIKSLCT utility. The utility reads the master copy of the MVS/QuickRef® main database and a set of control statements (QEXCLUDE), which indicate vendors and products to discard or keep. The output from this process is your copy of the main database with the unwanted reference information excluded.
There are two reasons for using the selective database load facility:
1. To save DASD storage space
2. Eliminate user confusion whenever multiple releases of a given product appear in the main database
The QWIKSLCT utility reads the QEXCLUDE member in the JCL data set that contains the directives for either inclusion or exclusion of each vendor, product, and release on the main database.
If you choose to utilize the selective database load feature, the task of updating the EXCLUDE member must be performed for each installation. The QEXCLUDE member is provided in the JCL data set; however, you must edit it and make your selections.
Updating the QEXCLUDE member can be a time consuming task of choosing which vendors, products, and releases you plan to keep. Currently there are 1842 entries in the release 6.2 QEXCLUDE member. While it may be a good idea to use the QEXCLUDE from your previous release as a template for the new release (assuming you did a selective database load), considerable effort is still required to build your new QEXCLUDE member.
For example, between release 7.9 and 8.0 of the MVS QuickRef main database there were 400 new, changed, or renamed products, and 150+ products dropped. All of these changes have to be evaluated when using edit to merge your previous QEXCLUDE selections into your new QEXCLUDE member.
Enter the new QWIKXCLD utility. If you’ve created your current database using the selective database load process, the QWIKXCLD utility should be used to create your next QEXCLUDE member. QWIKXCLD should be invoked prior to loading the database for the next MVS/QuickRef® release. The QWIKXCLD utility is included in the QuickRef® JCL data set.
QWIKXCLD is an easy-to-use utility that intelligently builds a new QEXCLUDE member named QEXCNEW. The QEXCNEW member contains entries for the same set of IBM and ISV (independent software vendor) products chosen the last time QuickRef® was installed and product entries from the new QW database. QEXCNEW is a customized image of the QEXCLUDE member shipped with the new release of MVS/QuickRef®. Additionally all required renames are integrated prior to building the QEXCNEW member. IBM z/OS product release information is retrieved from the system where QWIKXCLD executes and used to determine inclusion or exclusion of z/OS release specific products.
You must edit the QEXCNEW member and choose which new product entries you want to include in your next MVS/QuickRef® database.
In one simple execution of the QWIKXCLD utility, the repeated time consuming task of comparing your previous QEXCLUDE to the new QEXCLUDE and making the necessary changes for your new database has been entirely eliminated, including all renames that may have occurred for vendor name, product name, and release number.
All the necessary components for invoking this utility, including documentation (member QWIKXDOC), are contained in the JCL data set.
The QWIKXCLJ job in the JCL data set will process information from your current QuickRef® production database and use that information to produce one output member, QEXCNEW. The original QEXCLUDE member will not modified.
Following is a sample of the JCL used to invoke the QWIKXCLD utility:
//JS10 EXEC PGM=QWIKREF1,REGION=0K,PARM='L=V D=M'
//STEPLIB DD DSN=quickref.LINKLIB,DISP=SHR
//QWPRINT DD DSN=&&DBLISTV,DISP=(,PASS),
//QWREFDD DD DISP=SHR,DSN=quickref.DATABASE
//JS20 EXEC PGM=LOADER,PARM='MAP,LET,PRINT'
//SYSLIN DD DISP=SHR,DSN=quickref.JCL(QEXCLOBJ) <-new JCL lib
// DD DDNAME=SYSIN
//SYSLOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//QWEXCIN DD DSN=quickref.JCL(QEXCLUDE),DISP=SHR <-new JCL lib
//RENAMEIN DD DSN=quickref.JCL(QERENAME),DISP=SHR <-new JCL lib
//QWEXCOUT DD DSN=quickref.JCL(QEXCNEW),DISP=SHR <-new JCL lib
//VENDLIST DD VOL=REF=*.JS10.QWPRINT,DISP=(SHR,PASS),
//OVERIDES DD *,LRECL=80
After QWIKXCLD executes successfully, you should use the QEXCNEW member that it produces INSTEAD OF the QEXCLUDE member in the MVS/QuickRef® JCL data set, when you invoke the selective database load utility QWIKSLCT.
During the installation process, QWIKSLCT is invoked by using either the QWUPDATE or QWLOAD members in the QuickRef® JCL data set, or via the QWIAD installation assistance ISPF dialog.
For those installations utilizing the selective database load feature, using the QWIKXCLD utility will reduce the MVS/QuickRef® database installation time requirements considerably. Also the accuracy of selected products, as specified in the QEXCNEW member, is improved because QWIKXCLD uses your previous database plus the new database information to create the member. Reduced installation time and improved accuracy were the driving forces behind the development of this new utility.
For a complete discussion of the QWIKXCLD utility, refer to the MVS/QuickRef® JCL data set member QWIKXDOC.