Before you begin: Some system applications can maintain
their own data integrity and do not need to use the data integrity
function. To bypass data integrity processing so that those applications
can run correctly, perform one of the following actions:
- Modify the application to ensure that multiple users cannot open
or update a sequential data set at the same time.
- Specify the
list of sequential data sets to exclude from data integrity processing
in the IFGPSEDI member.
Attention: If you exclude data
sets from data integrity processing, you must ensure that all applications
bypass data integrity processing to avoid accidental destruction of
data when multiple applications attempt to open the data sets for
output. If data integrity problems occur, examine the SMF 14 and 15
records to see which data sets bypassed data integrity processing.
- Set the DCBEEXPS flag in the
DCBE macro to allow concurrent users to open the data sets for output
or update processing. Set bit 7, DCBEFLG2, to X'01' by
using the instruction OI DCBEFLG2,DCBEEXPS in the
DCBE macro.
To set and honor the DCBEEXPS flag, application programs
must meet any one of the following criteria:
- The application is authorized program facility (APF) authorized.
- The application is running in PSW supervisor state.
- The application is running in system key (0–7) when it opens
the data set.
If none of the preceding are true, the DCBEEXPS flag is ignored.
- If the application is authorized, specify the
NODSI flag in the program properties table (PPT). The NODSI flag bypasses
data integrity processing.
- If
the application is authorized, dynamically allocate the data set with
no data integrity (NODSI) specified to bypass data integrity processing.
In the DYNALLOC macro, specify NODSI to set the S99NORES flag.
Recommendation: Changes to IFGPSEDI take effect when you
restart the IFGEDI task. If any of the data sets in the exclude list
are open when you restart IFGEDI, this change takes effect after the
data sets are closed and reopened.
Related reading: For more information on using dynamic allocation,
see the z/OS MVS Programming: Authorized Assembler Services Guide.