Supplemental Information › 4.2 Using the PSP GENLIB Compare Utility
4.2 Using the PSP GENLIB Compare Utility
The PSP GENLIB compare utility is packaged with product
changes (PTFs) that update component database definitions in
sharedprefix.MICS.GENLIB(cccGENIN), where ccc is the
component identifier (e.g., RMF, SMF, CIC, etc.). The utility
program performs two primary functions:
1) Detects if any product change updates will overlay user
modifications made to the Component Definition Statements
member (cccGENIN) in sharedprefix.MICS.GENLIB, where ccc
is the component identifier (e.g., CICGENIN, RMFGENIN,
SMFGENIN). The utility report highlights these
potentially disruptive updates. The report also shows
which cccGENIN statements have been modified by the user,
and those that are updated by the product change. At the
end of the report, recommendations are made for the user
to consider when applying the product change.
2) Creates a member in sharedprefix.MICS.GENLIB that contains
lines you have modified in cccGENIN. The member created is
named Ucccnnnn, where ccc is the component identifier and
nnnn is the component product change number (e.g.,
URMF6810, UCIC8220, USMF7210). The Ucccnnnn member is
prepared in IEBUPDTE format so that it can be used to
re-apply your user modifications to a pristine copy of a
cccGENIN member thereby replicating your user
modifications.
JCL for the compare job is packaged with product changes that
update cccGENIN. When the product change is loaded to the
MICS complex level PSP libraries, the compare job is placed
in sharedprefix.MICS.PSP.CNTL as member cccnnnnC, where ccc
is the component identifier and nnnn is the component product
change number (e.g., RMF6810C, CIC8220C, SMF7210C).
How to Execute the PSP GENLIB Compare Utility Job
-------------------------------------------------
When you download a product change that updates cccGENIN, the
utility job is placed in sharedprefix.MICS.PSP.CNTL with the
member name of cccnnnnC, where cccnnnn is the product change
name. The PSP GENLIB compare utility JCL looks like this:
//CMPR EXEC MICSCOM,SYSPARM=cccnnnn
//GENUPD DD DISP=SHR,DSN=sharedprefix.MICS.PSP.GENLIB
//SYSIN DD DSN=sharedprefix.MICS.SOURCE(PSPGCMPR),
// DISP=SHR
where ccc is the component identifier
nnnn is the component product change number
You must edit sharedprefix.MICS.PSP.CNTL(cccnnnnC) to add a
job card and update the sharedprefix.MICS literal in the
//GENUPD and //SYSIN DD statements. The product change
number is pre-coded into the SYSPARM parameter.
After adding the job card and updating the GENUPD and SYSIN
DD statements, submit the job.
NOTE: The PSP GENLIB Compare Utility can be run multiple
times with no adverse effects. For example, if the utility
report indicates you have some insignificant user
modifications in sharedprefix.MICS.GENLIB(cccGENIN), you can
edit cccGENIN to eliminate the insignificant modifications
and re-run the utility. The new report should validate that
you correctly removed the insignificant user modifications.
PSP GENLIB Compare Utility ABENDS
---------------------------------
The PSP GENLIB Compare Utility will generate a U0998 ABEND
for any of the following reasons:
1) The sharedprefix.MICS.HOLD.PARMS(cccGENIN) and/or
sharedprefix.MICS.GENLIB(cccGENIN) member does not contain
"MICS" in columns 73-76 in the first line.
2) The sharedprefix.MICS.HOLD.PARMS(cccGENIN) and/or
sharedprefix.MICS.GENLIB(cccGENIN) member contains
out-of-order sequence numbers.
3) The sharedprefix.MICS.HOLD.PARMS(cccGENIN) and/or
sharedprefix.MICS.GENLIB(cccGENIN) member is not found.
4) The SYSPARM value on the //CMPR EXEC statement is blank or
does not consist of seven characters.
5) The CA MICS BASE maintenance level cannot be determined
because sharedprefix.MICS.GENLIB(DBTABLE) is corrupted.
6) The CA MICS BASE maintenance level is not at the required
level according to sharedprefix.MICS.GENLIB(DBTABLE).
The PSP GENLIB Compare Utility will generate a U0999 ABEND
and a SASLOG error message if either the
sharedprefix.MICS.GENLIB(DBTABLE) or
sharedprefix.MICS.GENLIB(COMPTDEF) members are not found.
If any of these ABENDs occur, the problem must be resolved
before the utility program can be run.
How the PSP GENLIB Compare Utility Works
----------------------------------------
One of the System Modification checklist steps for a product
change that modifies cccGENIN will instruct you to execute
the cccnnnnC job. This is generally step 2 of the checklist.
When executed, the utility first performs a check to ensure
that your CA MICS system is at an acceptable maintenance
level.
Next, the compare utility compares the pristine copy of the
Component Definition Statements (cccGENIN) in
sharedprefix.MICS.HOLD.PARMS with the working copy in
sharedprefix.MICS.GENLIB to discover your user modifications.
Individual lines in sharedprefix.MICS.GENLIB(cccGENIN) that
you have modified are written to member Ucccnnnn in
sharedprefix.MICS.GENLIB.
At the same time, the utility examines the product change
updates to cccGENIN to see if any of them collide with your
user modifications. The utility produces a report that shows
your user modifications (if any) as well as the product
change updates to cccGENIN. It highlights cases where product
change updates collide with your user modifications.
Note: The cccGENIN members in sharedprefix.MICS.HOLD.PARMS
should never be modified. These members exist to serve as a
basis for comparison against their companion members in
sharedprefix.MICS.GENLIB. If you have made any changes to
the cccGENIN members in sharedprefix.MICS.HOLD.PARMS, contact
Technical Support.
What is Considered a User Modification?
---------------------------------------
If there are any differences between a line in
sharedprefix.MICS.HOLD.PARMS and the corresponding line in
sharedprefix.MICS.GENLIB, the line is considered to be "user
modified." Corresponding lines are those that have the same
sequence number in columns 73-80.
There are two major types of user modifications:
operationally significant and operationally insignificant.
Operationally Significant User Modifications
--------------------------------------------
Operationally significant user modifications consist of user
additions, user deletions, and significant changes to
existing statements. Significant changes are those that
impact the parsing results as the line is interpreted by the
component generation job, sharedprefix.MICS.CNTL(cccCGEN).
- User Additions: A user addition is defined as any line in
sharedprefix.MICS.GENLIB(cccGENIN) that has a sequence
number (columns 73-80) not found in
sharedprefix.HOLD.PARMS(cccGENIN).
For example, to add data elements to a file, TYPE and NAME
statements may be added to
sharedprefix.MICS.GENLIB(cccGENIN). The user selects
unique sequence numbers for these new statements. Lines
with these unique sequence numbers will not be found in
sharedprefix.MICS.HOLD.PARMS(cccGENIN).
- User Deletions: A user deletion is defined as any line in
sharedprefix.MICS.HOLD.PARMS(cccGENIN) with a sequence
number not found in sharedprefix.GENLIB(cccGENIN). This
situation can only occur if the user has deleted a line
from sharedprefix.MICS.GENLIB(cccGENIN), or changed the
sequence number of an existing line.
NOTE: Users should never delete lines or alter sequence
numbers of lines delivered by CA MICS in
sharedprefix.MICS.GENLIB(cccGENIN). If deletions are
highlighted in the PSP GENLIB Compare utility report, the
original line should be replaced (using the appropriate
line from sharedprefix.HOLD.PARMS), and the statement
parameters should then be updated to effect the desired
change. For example, if you do not want a particular data
element in a file, do not delete the NAME statement
defining the element. Instead, turn the data element off
using the data element timespan activation switches.
- Significant Changes: A significant change is any change to
a line in sharedprefix.MICS.GENLIB(cccGENIN) that results
in a real difference in how the line is interpreted by the
component generation job, sharedprefix.MICS.CNTL(cccCGEN).
Changes to parameter values, keywords (e.g., NAME to NAMX),
and case changes or intraword spacing changes in a label
are examples of significant changes.
Operationally Insignificant User Modifications
----------------------------------------------
Operationally insignificant user modifications consist of any
change that has no impact on how the line is interpreted by
the sharedprefix.MICS.CNTL(cccCGEN) component generation job.
A keyword case change (e.g., "NAME" versus "name"), and
spacing differences between parameters (e.g., "N N N"
versus "N N N") are examples of operationally insignificant
user modifications.
The PSP GENLIB Compare Utility Report
-------------------------------------
The report generated by the PSP GENLIB compare utility job is
written to the //SASLIST output DD.
It is imperative that you examine the report output. The
report serves a number of purposes:
1) Each line in sharedprefix.MICS.GENLIB(cccGENIN) that is
user modified is displayed, preceded by the unaltered
line. This allows a visual comparison to see how the line
was modified.
2) Each existing line updated by the product change is
displayed, preceded by the line as it existed prior to
update. This permits a visual comparison to see how the
product change is updating the line.
3) Each line added to sharedprefix.MICS.GENLIB(cccGENIN) by
either the product change or the user is displayed.
4) Any lines deleted by the user are identified--and the
deleted line is shown as it exists in
sharedprefix.MICS.HOLD.PARMS(cccGENIN).
5) Finally, and most importantly, any lines in
sharedprefix.MICS.GENLIB(cccGENIN) with significant user
modifications that will be overlayed by the product change
updates are highlighted as a CONFLICT that must be
resolved (or accepted) during product change application.
The PSP GENLIB Compare Utility Generated Ucccnnnn Member
--------------------------------------------------------
A successful execution of the PSP GENLIB Compare Utility
results in the creation of a member in
sharedprefix.MICS.GENLIB that contains any user modified
lines from sharedprefix.MICS.GENLIB(cccGENIN). The member
created is named Ucccnnnn, where ccc is the component
identifier and nnnn is the component product change number
(e.g., URMF6810, UCIC8220, USMF7210). The Ucccnnnn member is
prepared in IEBUPDTE format so that it can be used to
re-apply your user modifications to a pristine copy of a
cccGENIN member thereby replicating your user modifications.
The member is always created, but will be empty if no user
modifications were found.
There is no requirement to execute an IEBUPDTE to apply these
modifications to sharedprefix.MICS.GENLIB(cccGENIN) because
the modifications already exist. In the case where a product
change CONFLICT overlays a line that you modified, however,
the Ucccnnnn contains the line with your modification and can
be used to re-impliment your user modification before you
execute sharedprefix.MICS.CNTL(cccCGEN).
Note: If a user modification is replicated by the product
change, it is no longer considered a user modifications
and will not be written to the Ucccnnnn member.
Note: While the Ucccnnnn member contains
sharedprefix.MICS.GENLIB(cccGENIN) user modified lines, it
should not be a substitute for maintaining documentation
regarding GENLIB user modifications in
sharedprefix.MICS.LOCALMOD.CNTL. All modifications to any
MICS modules should be documented in the LOCALMOD.CNTL
library.
The following section explains how to interpret and use the
PSP GENLIB Compare Utility report output:
1 - Interpreting and Using the Utility Report