Previous Topic: 4.1 Generating the CA MICS PSP Product Change Status

Next Topic: 4.2.1 Interpreting and Using the Utility Report

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