How does Disk determine tape utilization?
Each tape and tape device have unique identifiers so that Disk can locate its capacity in a table.
With Sysparm CARTCALCY specified, Disk gets tape usage info from the micro-code of the device. Disk checks the size of the NEXT data set to be processed and factors it by the value of Sysparm IDRCRATE (average compression, default 35%) to determine if the data set will fit on the remaining tape.
If the calculation is that the data set will NOT fit on the current tape, the tape is closed and a new tape is mounted and the data set is processed.
If a data set is NOT the first on the tape and the calculation is that the data set WILL fit, processing begins. If the reflector is encountered while writing this "nth" data set (not first data set on a tape) that tape is closed, a new tape is mounted and the entire data set is written to the new tape.
When a data set is the FIRST on the tape, writing continues until the reflector is hit and then new tape(s) are mounted to complete the writing of that data set. When this data set is completely written to multiple tapes, the last tape is closed and a new tape is mounted to begin processing the next data set.
This is processing logic in Disk that can not be altered by exits or parms.
If the device and/or tape has not been added to the Disk table, the capacity will default to a basic value from Sysparm CARTFEET which, even if set to "9999", will not fully utilize the tape.
If Disk is not fully utilizing the tapes then open a case and send the output of a simple Disk BACKUP of a single data set with these statements added:
//STEP1 EXEC DMS
//DIAGDSCL DD SYSOUT=*
//SYSPARMS DD *
DIAGEXCPY
SYSPARMSS
//SYSIN DD *
FIND DSN=xxxxx [any data set name]
BACKUP RETPD=2
/*
Also provide the information of the device make, model and the capacity of the tapes in the new case description.