The EDIF DISP=SHR verification is useful if any of the programs at your site extract information from DSCBs before issuing OPEN requests for data sets. In these cases, programs can damage a data set even though the ENQUEUE option is in effect. Because EDIF issues ENQ requests when a data set is opened, the ENQ request will be issued too late to prevent damage from occurring. You can tell EDIF to monitor a designated group of programs to see if they are updating certain data sets when DISP=SHR is specified in the JCL of the job.
You also can tell EDIF to prevent these types of updates from occurring. To detect or prevent these updates, specify the CHECKEXCLUSIVE parameter on a DEFAULT, DSORG, PREFIX, SUFFIX, PATTERN, or DATASET statement. EDIF does not check all programs that update a data set. Identify the programs that you want EDIF to check in one of the following ways:
For example, to see whether the programs listed on the UTILITY statement named TEST are updating the SYS1.LINKLIB data set without proper serialization, you could specify the following statement in the EDIPARMS member:
DATASET NAME=SYS1.LINKLIB OPTION=(SUPPRESSMESSAGES,SMF),
CHECKEXCLUSIVE(UTILITY(TEST))
To prevent updates that occur when DISP=SHR is specified, you need to specify OPTION(ABEND). EDIF abends programs that attempt to update the data set when DISP=SHR is specified and issues message MIM4006 to notify you about the update violation.
EDIF also issues message MIM4008 to notify you that the program has been abended. You should use extreme care when specifying the ABEND option on the DEFAULT statement or on any other statement that affects a large number of data sets.
You also can record update violations in an SMF record by specifying the SMF option. We recommend that you do not specify the SUPPRESSMESSAGES option to suppress notification messages when the ABEND option is in effect.
For example, to prevent the programs listed on the UTILITY statement named TEST from updating the SYS1.LINKLIB data set when DISP=SHR is specified, you would place this statement in the EDIPARMS member:
DATASET NAME=SYS1.LINKLIB OPTION=(SMF,ABEND),
CHECKEXCLUSIVE(UTILITY(TEST))
By default, EDIF uses abend code U913 when abending a program. To use a different abend code, specify a new code through the ABENDCODE parameter on the EDIINIT statement.
Example: Preventing DISP=SHR Updates
Suppose that you want EDIF to perform the following type of processing for partitioned data sets:
To do this, specify these statements in the EDIPARMS member:
DSORG NAME=PO CHECKEXCLUSIVE(PROGRAMS(TESTPAY1,TESTPAY2)),
OPTION=SMF
DATASET NAME=PAYROLL OPTION=ABEND
The abbreviation PO in the above example stands for PARTITIONED OPTION.
|
Copyright © 2014 CA.
All rights reserved.
|
|