Previous Topic: How You Identify the Data Sets EDIF Should ProcessNext Topic: EDIF Attribute Values


How You Detect and Prevent Attribute Modification

You can use the attribute verification feature of EDIF to see whether inappropriate programs are changing the attributes of a data set and to prevent attribute changes from occurring. You can enable this feature by specifying OPTION(ATTRIBUTES) on a DEFAULT, DSORG, PREFIX, SUFFIX, PATTERN, or DATASET statement. However, EDIF does not prevent the attribute change unless the ABEND option also is in effect. We recommend that you monitor attribute changes before specifying the ABEND option on any of these statements.

Note: EDIF does not detect attribute violations when DISP=MOD is coded in the JCL.

To detect attribute violations for testing purposes, we recommend that you specify OPTION(ATTRIBUTES,SMF,SUPPRESSMESSAGES). EDIF then records attribute violations in an SMF record and suppresses the MIM4004 message. This lets you identify data sets that are being damaged by attribute changes, without sending notification messages to TSO users and operators. Based on this information, you can decide which programs to abend and which programs to exempt from attribute verification.

For example, to detect attribute violations for the SYS1.LINKLIB data set and record violations in an SMF record, specify the following statement in the EDIPARMS member:

DATASET NAME=SYS1.LINKLIB OPTION(ATTRIBUTES,SMF,SUPPRESSMESSAGES)

To prevent attribute changes, specify OPTION(ATTRIBUTES,ABEND). If EDIF detects an attribute violation, then EDIF issues message MIM4004 to notify you about the violation and abends the program to prevent the update. EDIF also issues message MIM4007 to tell you that it abended the program.

For example, to prevent attribute changes for the SYS1.LINKLIB data set and record update violations in an SMF record, specify the following statement in the EDIPARMS member:

DATASET NAME=SYS1.LINKLIB OPTION(ATTRIBUTES,ABEND,SMF)

Be careful when specifying the ABEND option on the DEFAULT statement or on any other statement that affects a large number of data sets. We recommend that you do not specify the SUPPRESSMESSAGES option when the ABEND option is in effect.

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.