Completing the data control block
The information contained in the DD statement or a dynamic allocation request is stored in a table called the job file control block (JFCB). Each data set to be processed must also be represented by a data control block (DCB) that is created in storage by the processing program. Optionally, the processing program also supplies a DCB extension (DCBE). When completed, the DCB and DCBE contain full descriptive information about the data set, and provide the connection between the data set, the processing program, and the operating system.
The system can determine the optimum block size for new tape data sets. For more information, see z/OS DFSMS Using Data Sets.
- The DCB and DCBE macro in the processing program or a DCB or DCBE created by a compiler
- The JFCB and other control blocks, which the system creates from the DD statement in the input stream or from dynamic allocation parameters
- Data class definition, if any
- The data set label (if this is an existing data set)
The DCB is completed at execution time, when it is opened. Figure 1 illustrates the sequence of filling in the DCB information. Steps 3 and 8 are bypassed if the tapes have nonstandard labels or no labels.
Forward Merge (Steps 3 and 4): If the tape data set is being opened for INPUT, INOUT, RDBACK or EXTEND, or it is opened for OUTPUT in conjunction with DISP=MOD, then information from the standard data set label is merged into vacant fields of the JFCB. (Any fields that were already specified by the DD statement are not changed.) Then, for any OPEN option, information from the JFCB is merged into vacant fields of the DCB and DCBE. (Any fields that were already specified by the DCB and DCBE macro are not changed.) When the forward merge is completed, your processing program can use the DCB open user exit routine to modify the DCB or DCBE. For a description of the DCB open user exit routine, see z/OS DFSMS Using Data Sets. After the optional DCB OPEN user exit routine, the system calls the installation OPEN exit routine. For more information about installation exits, refer to z/OS DFSMS Installation Exits.
Reverse Merge (Steps 7 and 8): After the DCB is completed, the merging process is reversed. For an input data set, information from the DCB is used to fill in any vacant fields of the JFCB. For an output data set, the DCB information overrides the JFCB information (except the data set organization field), and the updated JFCB provides the information for creating the new labels.