CMNFIXMN - Generate SETSSI Data
Program CMNFIXMN checks the SETSSI in the IDR record of load modules to ensure that it contain information compatible with ChangeMan ZMF processing. If a SETSSI is incompatible, CMNFIXMN can update it. CMNFIXMN can also ensure that the load library directory contains the correct SETSSI value.
ChangeMan ZMF audit uses the load module SETSSI as a date/time stamp to discover out-of-synch conditions. When a load module is built by ZMF, the SETSSI is set to an eight-byte alphanumeric representation of a four byte binary number that is the number of seconds between January 1, 1960 and the link date of the load module. To improve the efficiency of ZMF programs that use the SETSSI, it is also stored in the directory of the load library.
If you add a load module or a load library to ChangeMan ZMF, the SETSSI may be blank or it may not contain the same value that ZMF would calculate. This may prevent audit from detecting out-of-synch conditions. CMNFIXMN prepares your load modules and load libraries for management by ChangeMan ZMF. CMNFIXMN can be run in two modes. When you use the REPORT execution parameter,
CMNFIXMN executes the SETSSI check and report its findings for each load module, but no updates are done. After you examine the report, you can run CMNFIXMN with execution parameter EXECUTE to update the load modules and the load library directory.
Input
Load library containing load modules that were not built by ChangeMan ZMF.
Output
Load library where all load module SETSSI are compatible with ChangeMan ZMF processing and the load library directory contains SETSSI values.
Sample JCL
Sample JCL is delivered in member CMNFIXMN in the delivered CMNZMF CNTL library.
DD Statements
This table describes DD statements for CMNFIXMN.
DDNAME | I/O | Purpose |
---|---|---|
LOD | I/O | Load library to be updated with SETSSI. |
SYSPRINT | Output | Report of mock directory updates or actual updates. |
...
PARM Options
The PARM parameter is required in the EXEC statement for CMNFIXMN. You must use one of the PARM values listed in this table. There is no default value.
Parameter | Use | Description |
---|---|---|
REPORT | Alternative | Produces a report of current SETSSI and ZMF calculated SETSSI. No updates are performed. |
EXECUTE | Alternative | Produces a report of current SETSSI and ZMF calculated SETSSI, and where they are different, updates load modules and the load module directory. |
...
Return Codes and Error Messages
This table lists return codes for CMNFIXMN.
Return Code | Description |
---|---|
0 | OK. No errors encountered. |
4 | Linkage date not found. |
...
This table lists abend codes for CMNFIXMN.
Abend Code | Description |
---|---|
U01 | Unable to open //SYSPRINT DD |
U02 | Unable to open //LOD DD |
U03 | LOD Library record format not undefined (not allocated as RECFM=U) |
U04 | Unable to load //LOD DD (probably sequential) |
U10 | Unable to stow //LOD DD (probably directory full) |
...
Reporting
This is a sample from a report from CMNFIXMN executed with PARM=REPORT.
CMN (MVS-8.1.0) JOB EXECUTION: DATE=WEDNESDAY FEBRUARY 25, 2015 TIME=12:21:06
CMN INVOCATION: PGM(CMNFIXMN - PROCESS SETSSI ROUTER) COMPILE(20141010 11.58)
PARM='REPORT'
PARM interpretation: REPORT; mock execution, NO UPDATES!
LOD library DSNAME=USER015.ISPLLIB
Now a report of a mock update follows; NO UPDATES!
Module Dir Module Module SSI Update
Name Alias-Of Exec SETSSI SETSSI Link Date Type Dir
-------- -------- ---- -------- -------- ---------- ------ ------
CLS Yes MISSING 61257D9E 2011/08/24 Genned Yes <MOCK UPDATE>
COLOURS Yes 610A8BE2 610A8BE2 2011/08/04 Actual No
CURPOS Yes MISSING 61008925 2011/07/27 Genned Yes <MOCK UPDATE>
DELINKI Yes MISSING 56D592F0 2006/03/01 Genned Yes <MOCK UPDATE>
HELLOW Yes MISSING 6 4809EE4 2013/06/06 Genned Yes <MOCK UPDATE>
...
S0C1 Yes MISSING 662ECC1F 2014/04/28 Genned Yes <MOCK UPDATE>
S0C4 Yes MISSING 662ECD14 2014/04/28 Genned Yes <MOCK UPDATE>
...
33 Total members
9 ALIAS notations
0 Considered Not Executable
0 Directory SETSSI unusable, replaced by module SETSSI
23 Directory SETSSI missing, replaced by module SETSSI
0 Directory SETSSI does not match module, replaced
1 Directory SETSSI matches module, no action taken
CMNFIX30: PO(pdse) PROGRAM LIBRARY PROCESSOR COMPLETED. RETURN CODE=00
CMNFIXMN: ROUTER PROCESSING COMPLETED. RETURN CODE=00
...