// EXEC LIBR,SIZE=256K
ACC S=NEWLIB2.REXX
CATALOG VSAMSUMM.PROC REPLACE=YES
/*----------------------------------------------------------------*/
/* VSAMSUMM - THIS PROGRAM WILL PRINT A SUMMARY OF ALL OF THE */
/* VSAM CATALOGS ALLOCATED TO THE SPECIFIED VSAM */
/* MASTER CATALOG. */
/*----------------------------------------------------------------*/
/*====================> MODULE HISTORY <====================*/
/*----------------------------------------------------------------*/
/* 20020301 -CXK- NEW PROGRAM */
/*----------------------------------------------------------------*/
/* USAGE: // EXEC REXX=VSAMSUMM,PARM='MASTER CATALOG NAME' */
/*----------------------------------------------------------------*/
PARSE UPPER ARG CATNAME
IF CATNAME = '' THEN DO
SAY 'ERROR: NO VSAM MASTER CATALOG SPECIFIED'
EXIT 12
END
SAY ' '
SAY ' VSAM CATALOG SUMMARY'
SAY ' '
SAY ' '
SAY ' MASTER CATALOG:' CATNAME
SAY ' '
SAY RIGHT('TOTAL',61) RIGHT('TRACKS',10) RIGHT('PCT',10),
RIGHT('VOLUME',10)
SAY LEFT(' USER CATALOG',50) RIGHT('TRACKS',10) RIGHT('USED',10),
RIGHT('USED',10) RIGHT('COUNT',10)
SAY LEFT(' ',94,'-')
Y=REXXIPT('SYSIPT.')
Y=OUTTRAP('SYSLST.','*','NOCONCAT')
SYSIPT.0 = 1
SYSIPT.1 = ' LISTCAT CATALOG('||CATNAME||') ALL'
ADDRESS LINK 'IDCAMS MARGINS(1 80)'
IF RC != 0 THEN DO
SAY 'ERROR RC=' RC
DO J=1 TO SYSLST.0
SAY SYSLST.J
END J
EXIT 16
END
CATLGS.0 = 0
CATINDX = 0
DO J=1 TO SYSLST.0
IF (SUBSTR(SYSLST.J,1,11) = 'USERCATALOG') THEN DO
CATINDX = CATINDX + 1
CATLGS.0 = CATINDX
CATLGS.CATINDX = WORD(SYSLST.J,3)
END
END
DO J=1 TO CATLGS.0
TOTTRAK = 0
TOTUSED = 0
VOLCNT = 0
Y=REXXIPT('SYSIPT.')
Y=OUTTRAP('SYSLST.','*','NOCONCAT')
SYSIPT.0 = 1
SYSIPT.1 = ' LISTCAT SPACE CATALOG('||CATLGS.J||') ALL'
ADDRESS LINK 'IDCAMS MARGINS(1 80)'
DO K=1 TO SYSLST.0
IF (SUBSTR(SYSLST.K,1,6) = 'VOLUME') THEN DO
VOLCNT = VOLCNT + 1
END
IF (SUBSTR(SYSLST.K,8,12) = 'TRACKS-TOTAL') THEN DO
TRACKS = STRIP(SUBSTR(SYSLST.K,20,12),'L','-')
TOTTRAK = TOTTRAK + TRACKS
END
IF (SUBSTR(SYSLST.K,8,11) = 'TRACKS-USED') THEN DO
USED = STRIP(SUBSTR(SYSLST.K,19,13),'L','-')
TOTUSED = TOTUSED + USED
END
END
PCTUSED = ( ( TOTUSED / TOTTRAK ) * 100 )
SAY ' '||LEFT(CATLGS.J,49) RIGHT(TOTTRAK,10) RIGHT(TOTUSED,10),
RIGHT(FORMAT(PCTUSED,3,1),10,' ') RIGHT(VOLCNT,10)
END
EXIT
/+
/*
// LIBDEF *,SEARCH=NEWLIB2.REXX
// OPTION NODUMP
// EXEC REXX=VSAMSUMM,PARM='SYSTEM.CELLULAR.VSAM.MASTER.CATALOG'
/*
               (
geocities.com/vmvse)