Data set stacking and tape mount management

If you are a system programmer or storage administrator and your installation plans to take advantage of tape mount management (TMM) methodology, you need to understand its effect on existing practices. Using TMM can improve the effectiveness of tape device use because you can redirect certain types of tape data sets to DASD.

Based on your analysis of the output from the Volume Mount Analyzer, you might identify data sets that would appear to be good candidates for redirection from tape to DASD. If, however, your installation has jobs that use data set stacking, you need to make sure that either all of the data sets in a data set collection are redirected or that none of the data sets in a data set collection are redirected. Otherwise, there might be more than one device category for the data sets in the collection, a problem that could cause allocation or open failures.

The term device category refers to types of devices. The categories are:

You can request data set stacking with either VOL=SER or VOL=REF. With VOL=SER, the system can detect data set stacking and check for consistent device categories only within a step. To request data set stacking across steps or across jobs, you must use VOL=REF. VOL=SER is not recommended, and it is required only when the existing data sets cannot be referenced by the catalog, or specific volumes must be used for output.

When you specify VOL=SER to request data set stacking within a step, the system checks for mixed device categories. If the system finds mixed device categories within a data set collection, it invokes the ACS routines to try to resolve the device category conflict. If the ACS routines do not direct the data sets to a consistent device category, the allocation fails with message IGD23101I. Note: The system does not include existing SMS-managed data sets in a data set collection because catalog information might reflect a redirection. See Examples of data set stacking.

z/OS DFSMS Implementing System-Managed Storage provides more information about ACS routine handling and detection of data set stacking.

When you specify VOL=REF to request data set stacking across steps or jobs, the system can pass information about the volume references to the ACS routines. With this information, the ACS routines can direct requests for data sets within a data set collection to the same device category.

If your installation is using TMM and runs jobs that request data set stacking, you need to understand that certain JCL combinations might not produce the results you expect, because ACS routines might redirect data sets from tape to DASD. Thus:

While you might find that specifying VOL=SER to request data set stacking across steps or jobs does work sometimes, it might not always produce the results you expect. To avoid problems, use VOL=REF.

If you are using or planning to use TMM and want to use data set stacking, eliminate requests for data set stacking like the ones shown in the following examples. (For examples that show recommended methods of requesting data set stacking, see Examples of data set stacking.)

Example 1
//JOB1   JOB .....
//STEP1  EXEC .....
//DD1    DD   DSNAME=W,DISP=(NEW,CATLG),
//              VOLUME=SER=MINE,UNIT=3490
//STEP2  EXEC .....
//DD2    DD   DSNAME=X,DISP=NEW,VOLUME=SER=MINE,
//              LABEL=(2,SL),UNIT=3490

This example uses VOL=SER to request data set stacking across steps.

If you replace VOL=SER in DD2 with VOL=REF=*.STEP1.DD1, the ACS routines will have the information they need to allocate data set X to a consistent device category even if data set W is redirected to DASD.

Example 2
//JOB1   JOB .....
//STEP1  EXEC .....
//DD1    DD  DSNAME=W,DISP=(NEW,CATLG),
//             VOLUME=SER=MINE,UNIT=3490

//JOB2   JOB .....
//STEP1  EXEC .....
//DD2    DD  DSNAME=X,DISP=NEW,VOLUME=SER=MINE,
//             LABEL=(2,SL),UNIT=3490

This example uses VOL=SER to request data set stacking across jobs.

If you replace VOL=SER in DD2 with VOL=REF=W, the ACS routines will have the information they need to allocate data set X to a consistent device category.

Example 3

This example uses VOL=SER to request data set stacking across jobs.
//JOB1   JOB  .....
//STEP1  EXEC .....
//DD1    DD   DSNAME=W,DISP=(NEW,CATLG),UNIT=3490,
//              VOL=SER=TAPE01,LABEL=(1,SL)
In JOB1, the ACS routines redirect data set W to SMS-managed DASD. Data set W becomes SMS-managed.
//JOB2   JOB  .....
//STEP2  EXEC .....
//DD1    DD   DSNAME=W,DISP=OLD
//DD2    DD   DSNAME=X,DISP=NEW,VOL=SER=TAPE01,
//              LABEL=(2,SL),UNIT=3490
//DD3    DD   DSNAME=Y,DISP=NEW,VOL=SER=TAPE01,
//              LABEL=(3,SL),UNIT=3490

In JOB2, data set W, after its redirection, is an existing SMS-managed data set. The system does not include data set W in the data set collection. The system does detect data set stacking between DD2 and DD3; data set X and Y make up the data set collection.

If you replace VOL=SER in DD2 with VOL=REF=*.DD1 and VOL=SER in DD3 with VOL=REF=*.DD2, the ACS routines will have the information they need to allocate data sets X and Y to a consistent device category with data set W.