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 above 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.