Current Space Utilized on Tape

Document ID : KB000076840
Last Modified Date : 09/04/2018
Show Technical Document Details
Question:
Is there a report to provide current space being utilized on tape? Will also show for all data currently on tape by application?
Answer:
//XXXXXXXT JOB (000000000),'XXXxXXX.XXxXXX',NOTIFY=XXXXXXXX,            00001000
//  CLASS=B,MSGCLASS=X                                                  00002000
/*JOBPARM  R=5083                                                       00003000
//********************************************************************* 00004000
//*             ****  PROCNAME=CATEARL  ****                          * 00005000
//********************************************************************* 00006000
//**         PROCEDURE TO EXECUTE TLMS/EARL REPORTS                   * 00007000
//********************************************************************* 00008000
//CATECOGO EXEC PGM=EARL,REGION=2M,PARM='&PRM'                          00009000
//*                                                                     00009100
//STEPLIB  DD  DISP=SHR,DSN=ASM.TLMSL2.TLB5PROD.CAILIB                  00009200
//*                                                                     00009300
//EARLLIB  DD  DISP=SHR,DSN=ASM.TLMSL2.TLB5PROD.CAISRC                  00009400
//         DD  DISP=SHR,DSN=PMFKEYX.EARL.CNTL                           00009500
//*                                                                     00009600
//TAPEDB   DD  DISP=SHR,DSN=PMFKEYX.TIAA.DEN.VMF                        00009707
//*                                                                     00009800
//SYSEARL  DD  SYSOUT=*                                                 00009900
//*                                                                     00010000
//SYSPRINT DD  SYSOUT=*                                                 00010100
//*                                                                     00010200
//EARLOBJ  DD  UNIT=SYSDA,SPACE=(TRK,(15,1))                            00010300
//*                                                                     00010400
//SORTLIB  DD  DSN=SYS1.SORTLIB,DISP=SHR                                00010500
//*                                                                     00010600
//SORTIN   DD  UNIT=SYSDA,SPACE=(CYL,(15,5))                            00010700
//*                                                                     00010800
//SORTOUT  DD  UNIT=SYSDA,SPACE=(CYL,(15,5))                            00010900
//*                                                                     00011000
//SYSUT1   DD  UNIT=SYSDA,SPACE=(CYL,(15,5))                            00011100
//*                                                                     00011200
//SYSUT2   DD  UNIT=SYSDA,SPACE=(CYL,(15,5))                            00011300
//*                                                                     00011400
//SYSUT3   DD  UNIT=SYSDA,SPACE=(CYL,(15,5))                            00011500
//*                                                                     00011600
//SYSUT4   DD  UNIT=SYSDA,SPACE=(CYL,(15,5))                            00011700
//*                                                                     00011800
//SYSUT5   DD  UNIT=SYSDA,SPACE=(CYL,(15,5))                            00011900
//*                                                                     00012000
//WORK1    DD  UNIT=SYSDA,SPACE=(CYL,(15,5))                            00012100
//*                                                                     00012200
//EARLOUT  DD  DUMMY,DCB=BLKSIZE=512                                    00012300
//*                                                                     00012400
//SYSOUT   DD  SYSOUT=*                                                 00012500
//*                                                                     00012600
//SYSUDUMP DD  SYSOUT=*                                                 00012700
//*                                                                     00012800
//SYSIN    DD  *                                                        00012900
OPTION LIST ON                                                          00013001
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!    00014001
!!                                                                !!    00015001
!!           CA TLMS SAMPLE REPORT TO LIST VOLUMES AND THE        !!    00016001
!!           NUMBER OF MEGABYTES OF DATA WRITTEN TO THE VOLUME.   !!    00017001
!!                                                                !!    00018001
!!    NOTE:  THE STATUS FIELD INDICATES THE ABILITY OF THE REPORT !!    00019001
!!           TO CALCULATE THE TOTAL MB FOR THE VOLUME.  IF A      !!    00020001
!!           BLOCKSIZE OF ZERO IS ENCOUNTERED FOR A FILE ON THE   !!    00030001
!!           VOLUME (GENERALLY DUE TO THE APPLICATION NOT         !!    00040001
!!           PROPERLY UPDATING THE IBM CONTROL BLOCK), THE STATUS !!    00050001
!!           WILL DISPLAY AS "??", INDICATING THE CALCULATION     !!    00060001
!!           IS NOT COMPLETE.                                     !!    00070001
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!    00080001
                                                                        00090001
 COPY EARLDEFS                                                          00100001
                                                                        00110001
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  00120001
!  SYSPARM VALUES ARE 000000 - 999999 TO ONLY REPORT ON VOLUMES WITH !  00130001
!  LESS THAN PARM='NNNN' MEGABYTES.                                  !  00140001
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  00150001
                                                                        00160001
 DEF MEGABYTE_LIM           = SYSPARM 1-7 N                             00170001
 DEF MEGABYTE_LIM_X         = SYSPARM 1-7 X                             00180001
 DEF MEGABYTE_LIM_CHAR1     = SYSPARM 1-1 X                             00190001
 DEF MEGABYTE_LIM_CHAR2     = SYSPARM 2-2 X                             00200001
 DEF MEGABYTE_LIM_CHAR3     = SYSPARM 3-3 X                             00210001
 DEF MEGABYTE_LIM_CHAR4     = SYSPARM 4-4 X                             00220001
 DEF MEGABYTE_LIM_CHAR5     = SYSPARM 5-5 X                             00230001
 DEF MEGABYTE_LIM_CHAR6     = SYSPARM 6-6 X                             00240001
 DEF MEGABYTE_LIM_CHAR7     = SYSPARM 7-7 X                             00250001
                                                                        00260001
 DEF BYTES_VOL     (N 13.0) = 0   'VOLUME'  'BYTES'                     00270001
                                   PIC 'Z,ZZZ,ZZZ,ZZZ,ZZ9'              00280001
 DEF BYTES_DATASET (N 13.0) = 0   'DATASET' 'BYTES'                     00290001
                                   PIC 'Z,ZZZ,ZZZ,ZZZ,ZZ9'              00300001
 DEF MEGA_BYTES    (N  7.2) = 0   'VOLUME'  'MBYTES'                    00310001
                                   PIC 'Z,ZZZ,ZZ9.99'                   00320001
 DEF REQ_MBYTES    (N  7.0) = 9999999         PIC 'Z,ZZZ,ZZ9'           00330001
 DEF REQ_BYTES     (N 13.0) = 9999999000000   'MAXIMUM ' ' BYTES  '     00340001
 DEF HOLD_VOLSER   (X    6) = ' '                                       00350001
 DEF HOLD_DSN      (X   44) = ' '                                       00360001
 DEF HOLD_SCRIND   (X    1) = ' '                                       00370001
 DEF HOLD_VOLCNT   (P  5.0) = 0                                         00380001
 DEF HOLD_VOLSEQ   (P  5.0) = 0                                         00390001
 DEF HOLD_FILECNT  (N  5.0) = 0                                         00400001
 DEF HOLD_VOL_PER  (N  3.0) = 0                                         00410001
 DEF HOLD_STATUS   (X    2) = ' '                                       00420001
 DEF PRT_VOLSER    (X    6) = ' ' 'VOLUME'  'SERIAL'                    00430001
 DEF PRT_DSN       (X   44) = ' ' 'DATA SET' 'NAME'                     00440001
 DEF PRT_SCRIND    (X    3) = ' ' 'SCR'      'IND'                      00450001
 DEF PRT_STATUS    (X    2) = ' ' 'BYTE'     'CALC'                     00460001
 DEF PRT_VOLCNT    (P  3.0) = 0   'VOL'      'CNT'    PIC 'ZZZ'         00470001
 DEF PRT_VOLSEQ    (P  3.0) = 0   'VOL'      'SEQ'    PIC 'ZZZ'         00480001
 DEF PRT_VOL_PER   (N  3.0) = 0   'VOL'      ' % '    PIC 'ZZZ'         00490001
 DEF PRT_FILECNT   (N  5.0) = 0   'FILE'     'CNT'    PIC 'ZZZZZ'       00500001
 DEF PRT_MEGABYTES (N  7.2) = 0   'VOLUME'  'MBYTES'                    00510001
                                   PIC 'Z,ZZZ,ZZ9.99'                   00520001
 DEF PRT_BYTESUSED (N 13.0) = 0   'VOLUME'  'BYTES'                     00530001
                                   PIC 'Z,ZZZ,ZZZ,ZZZ,ZZ9'              00540001
 DEF FIRST_SWITCH  (X    1) = 'Y'                                       00550001
                                                                        00560001
 IF FIRST_SWITCH = 'Y'                                                  00570001
    SET FIRST_SWITCH = 'N'                                              00580001
    SET TYPRUN = R_CHAINED                                              00590001
                                                                        00600001
    IF MEGABYTE_LIM_CHAR1 <  '0'                                        00610001
      OR MEGABYTE_LIM_CHAR1 > '9'                                       00620001
       GOTO GETTAG                                                      00630001
    ENDIF                                                               00640001
                                                                        00650001
    IF MEGABYTE_LIM_X  > '0000000'                                      00660001
     AND MEGABYTE_LIM_X  <  '9999999'                                   00670001
       SET REQ_MBYTES    = MEGABYTE_LIM                                 00680001
       SET REQ_BYTES  = REQ_MBYTES * 1000000                            00690001
    ENDIF                                                               00700001
 ENDIF                                                                  00710001
                                                                        00720001
 GETTAG:                                                                00730001
  GET TAPEDB                                                            00740001
  IF TAPEDB = 'E'                                                       00750001
     GOTO EOJ                                                           00760001
  ENDIF                                                                 00770001
                                                                        00780001
  GOTO GETTAG SCRATCH_IND  = 'Y'                                        00790001
  GOTO GETTAG SERVICE_IND  = 'OUT'                                      00800001
  GOTO GETTAG VOLUME_COUNT = 0                                          00810001
! GOTO GETTAG VOLUME_COUNT > 1                                          00820001
                                                                        00830001
  IF HOLD_VOLSER = ' '                                                  00840001
     SET HOLD_VOLSER   =  VOLSER                                        00850001
     SET HOLD_BASEVOL  =  BASEVOL                                       00860001
     SET HOLD_DSN      =  DSN                                           00870001
     SET HOLD_FILECNT  =  FILECNT                                       00880001
     SET HOLD_VOLCNT   =  VOLUME_COUNT                                  00890001
     SET HOLD_VOLSEQ   =  VOLSEQ                                        00900001
     SET HOLD_VOL_PER  =  VOL_PERCENTAGE                                00910001
     SET HOLD_SCRIND   =  SCRATCH_IND                                   00920001
     SET HOLD_STATUS   = 'OK'                                           00930001
  ENDIF                                                                 00940001
                                                                        00950001
  IF BASEVOL = HOLD_VOLSER                                              00960001
     IF BLKSIZE = 0                                                     00970001
        SET HOLD_STATUS  = '??'                                         00980001
     ENDIF                                                              00990001
     IF BYTES_VOL <= REQ_BYTES                                          01000001
        SET BYTES_DATASET =  BLKCNT * BLKSIZE                           01010001
        SET BYTES_VOL     =  BYTES_VOL  + BYTES_DATASET                 01020001
     ENDIF                                                              01030001
     GOTO GETTAG                                                        01040001
  ELSE                                                                  01050001
     SET PRT_VOLSER    =  HOLD_VOLSER                                   01060001
     SET PRT_BASEVOL   =  HOLD_BASEVOL                                  01070001
     SET PRT_DSN       =  HOLD_DSN                                      01080001
     SET PRT_FILECNT   =  HOLD_FILECNT                                  01090001
     SET PRT_VOLCNT    =  HOLD_VOLCNT                                   01100001
     SET PRT_VOLSEQ    =  HOLD_VOLSEQ                                   01110001
     SET PRT_VOL_PER   =  HOLD_VOL_PER                                  01120001
     SET PRT_BYTESUSED =  BYTES_VOL                                     01130001
     SET PRT_MEGABYTES =  BYTES_VOL / 1000000                           01140001
     SET PRT_STATUS    =  HOLD_STATUS                                   01150001
     DECODE HOLD_SCRIND INTO PRT_SCRIND                                 01160001
         'Y' = 'YES'                                                    01170001
         'N' = ' NO'                                                    01180001
     ELSE      '???'                                                    01190001
     SET HOLD_SCRIND   =  SCRATCH_IND                                   01200001
     SET HOLD_VOLSER   =  VOLSER                                        01210001
     SET HOLD_BASEVOL  =  BASEVOL                                       01220001
     SET HOLD_DSN      =  DSN                                           01230001
     SET HOLD_FILECNT  =  FILECNT                                       01240001
     SET HOLD_VOLCNT   =  VOLUME_COUNT                                  01250001
     SET HOLD_VOLSEQ   =  VOLSEQ                                        01260001
     SET HOLD_VOL_PER  =  VOL_PERCENTAGE                                01270001
     SET BYTES_VOL     =  BLKCNT * BLKSIZE                              01280001
     SET HOLD_STATUS   = 'OK'                                           01290001
     IF  BLKSIZE = 0                                                    01300001
         SET HOLD_STATUS  = '??'                                        01310001
     ENDIF                                                              01320001
  ENDIF                                                                 01330001
                                                                        01340001
!                                                                       01350001
! THIS TEST WILL BYPASS PRINTING ANY VOLUMES WITH A ZERO TOTAL          01360001
! BLOCKSIZE (ALL FILES RECORDED WITH BLOCKSIZE=0).                      01370001
!                                                                       01380001
  IF PRT_BYTESUSED = 0                                                  01390001
     GOTO GETTAG                                                        01400001
  ENDIF                                                                 01410001
                                                                        01420001
!                                                                       01430001
! UNCOMMENT IF YOU WISH TO EXCLUDE VOLUMES WITH INCOMPLETE TOTAL        01440001
! BYTE CALCULATION DUE TO SOME FILE BLOCKSIZES RECORDED AS "0"'         01450001
!                                                                       01460001
! IF PRT_STATUS    = '??'                                               01470001
!    GOTO GETTAG                                                        01480001
! ENDIF                                                                 01490001
                                                                        01500001
 REPORT                                                                 01510001
                                                                        01520001
  TITLE 0 &COMPANY_NAME                                                 01530001
         @48  'MEGABYTE USAGE FOR VOLUMES WITH LESS THAN'               01540001
         REQ_MBYTES  1 'MB'                                             01550001
        @112  'PAGE ' PAGENUMBER                                        01560001
  TITLE @1 'CA TLMS       '                                             01570001
        @15 &RELNO &GENLEVEL                                            01580001
        @112 DATEOFREPORT 3 TIMEOFREPORT                                01590001
                                                                        01600001
  SELECT (PRT_MEGABYTES < REQ_MBYTES)                                   01610001
  CONTROL   PRT_MEGABYTES DOWN  PRT_DSN PRT_BASEVOL PRT_VOLSEQ          01630007
!CONTROL PRT_BASEVOL PRT_VOLSEQ                                         01640007
                                                                        01650001
  PRINT @2 PRT_VOLSER 3 PRT_SCRIND 3 PRT_FILECNT 3 PRT_VOLSEQ           01660001
        3 PRT_VOLCNT 3 (PRT_MEGABYTES) 3 PRT_STATUS 3 PRT_VOL_PER       01670002
        3 PRT_DSN 3 PRT_BYTESUSED                                       01680001
  END                                                                   01690001
File Attachments:
megitb.txt