If both jobs use FILE concurrently, READ cannot be certain of the integrity of FILE because MODIFY is changing records in the data set. MODIFY should have exclusive control of the data set.
//ddname DD DISP=(NEW,...
//ddname DD DISP=(OLD,...
//ddname DD DISP=(MOD,...
//ddname DD DISP=(SHR,...
If the system cannot find volume information for the data set on the DD statement, in the catalog, or passed with the data set from a previous step, the system assumes that the data set is being created in this job step. For a new data set, MOD causes the read/write mechanism to be positioned at the beginning of the data set.
Exclusive control of a data set
When a job has exclusive control of a data set, no other job can use that data set until completion of the last step in the job that refers to the data set except when downgrading ENQs. A job should have exclusive control of a data set in order to modify, add, or delete records.
In some cases, you may not need exclusive control of the entire data set. You can request exclusive control of a block of records by coding the DCB, READ, WRITE, and RELEX macro instructions. See z/OS DFSMS Using Data Sets .
Shared control of a data set
Several jobs can concurrently use a data set on a direct access device if they request shared control of the data set. None of the jobs should change the data set in any way.
If more than one step requests a shared data set, code SHR on every DD statement that requests the data set, if it is to be used by concurrently executing jobs.
Examples
//DD1 DD DSNAME=PERMDS,DISP=OLD
//DD2 DD DSNAME=&&TEMPDS,DISP=NEW
//DD3 DD DSNAME=GENDS(+1),DISP=(NEW,CATLG)