book
Article ID: 76840
calendar_today
Updated On:
Issue/Introduction
Is there a report to provide current space being utilized on tape? Will also show for all data currently on tape by application?
Resolution
//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