Determining volume switch

For a multivolume input data set, you must specify the serial numbers of all the volumes to be processed. Specify the serial numbers either directly in the DD statement or indirectly through the catalog procedure. Specify the serial numbers in forward sequence, regardless of whether the tapes are to be read forward or backward.
  • For noncataloged data sets, you specify the volume serial numbers in the VOLUME parameter of the DD statement. The system processes the group of volumes in whatever order you specify and processes only the volumes you specify. If you specify volumes out of order or omit volumes, you will get warning messages IEC709I or IEC710I.
  • For cataloged data sets, the system processes the group of volumes in sequential order. You can begin processing at any volume of the group by specifying a volume sequence number in the VOLUME parameter of the DD statement.
For input, the label identifier of the trailer labels determines whether the system continues processing the data set. When the system finds an EOV label, it performs volume switching. When the system finds an EOF label, it passes control to the user's end-of-data routine, with these exceptions:
  • If the DD statement specifies OPTCD=B, and if an additional volume is available, then the system performs volume switching. If OPTCD=B, no volumes are available for switching, and no data set is concatenated after the current one, then the system passes control to the user's end-of-data routine.
    Guidelines: Know these guidelines when you specify the OPTCD=B parameter:
    • If you specify the OPTCD=B parameter on the DD statement for a multi-volume tape data set, the system will generate the equivalent of individual concatenated DD statements for each volume serial number. This means that the system allocates one tape drive for each volume.
    • Be aware that you might receive an ABEND002 when the following conditions occur:
      • If you are using unlike attributes concatenation to process a multi-volume variable blocked spanned (VBS) tape data set and each volume serial number is specified on individual concatenated DD statements because you specified them that way, or because OPTCD=B was specified, and
      • If the data set spans volumes in such a way that one segment (for example, the first segment) is at the end of the current volume and the next segment (for example, the middle segment) is at the beginning of the next volume.
      • If you are using unlike attributes concatenation path for tape with OPTCD=B and VBS, and
      • If you have a VBS data set whose records span from one volume to the next, and
      • If you attempt to treat these volumes as separate data sets, the integrity of the data cannot be guaranteed. QSAM will abend. QSAM is designed to ensure that all of the segments can be put together, but will be unable to do so. This restriction will also be based on the data and whether or not the segments are split between volumes.
  • If another data set is concatenated after this one, the system processes it. If the user has not set on the unlike-attributes bit (the DCBOFPPC bit), then the system treats the concatenated data set as if it began another volume of the current data set. If the user defined an EOV exit, the system calls it (not a DCB open exit). If the unlike-attributes bit is on, then the system closes the current data set and opens the concatenated data set. If the user defined a DCB open exit, the system calls it (not an EOV exit). For more information on using concatenated data sets, see z/OS DFSMS Using Data Sets.
To determine whether additional volumes are required, the system maintains a volume sequence number in the DEB in storage.
  • For read forward operations, the volume sequence number in the DEB is increased as each volume is processed. This count is compared to the total number of volumes requested, as shown in the JFCB.
  • For read backward operations, the volume sequence number in the DEB is initialized to the total number of volumes requested, as shown in the JFCB. The DEB count is decreased as each volume is processed until the count reaches 0.
If another volume is not required (end-of-data-set condition), control is given to the user's end-of-data routine that is specified in the data control block (DCB) or DCBE. Subsequently, the processing program or the operating system closes the data set.
  • The user's end-of-data routine is not entered until the last specified volume or the last concatenated data set is processed.
  • If an input data set is closed before the end of the data is reached, the user's end-of-data routine is not entered.

If another volume is required (end-of-volume condition), the system obtains the next volume serial number from the JFCB and performs volume switching. If the new volume is not already mounted, the EOV routine issues a mount message to the operator.

When multiple tape units are being used, the EOV routine also checks to see if a next-plus-one volume is specified, and if the volume just completed can be rewound and unloaded. If so, the EOV routine issues a message directing the operator to mount the next-plus-one volume on the tape unit just used. This is a premounting aid; the next-plus-one volume label is not verified at this time. The next-plus-one volume mount is referred to as a lookahead mount. This lookahead or parallel mounting will result in an IEC501E mount message.

Lookahead mount processing is disabled when the volume sequence number that EOV is currently processing equals either the number of volsers in the JFCB or the JCL volume count. To ensure that lookahead mount processing stays enabled up to the maximum allowed volume sequence, specify a JCL volume count equal to this maximum allowed volume sequence. The smallest maximum allowed volume sequence is 5 to which you can add multiples of 15. For example, you can specify the JCL volume count as 5, 20, 35, and so on.

Note: The IEC501E message has a type 2 descriptor code that will cause the message to be retained on the screen.
If you do not want message retention, turn off the message retention attribute. You can accomplish this by either:
  • Specifying RETAIN(NO) for the message id in an MPFLSTxx record
  • Using a WTO message exit (an MPF specific exit or IEAVMXIT) to alter the message descriptor code or to request "do not retain this message"

For tape mounts, the IEC501E message will remain on the screen until the mount is satisfied or until EOV has occurred on the previous volume. EOV will delete the IEC501E message and will issue the IEC501A message.