/* Rexx - Catstat : Check catalog status of all ds on vol */ Parse Upper Arg volser . /* requires a volser */ If volser = '' Then Do; Say 'no volser'; Return; End Address ispexec dsvar='' Say 'Retrieving names on 'volser'...' 'LMDINIT LISTID(LISTIDV) VOLUME('volser')' /* read VTOC */ servrc=rc Do queued(); Pull; End Call time 'r' n=0 Say 'Processing names...' Do While servrc = 0 'LMDLIST LISTID(&LISTIDV) DATASET(DSVAR)' /* get next dsname */ servrc=rc If servrc = 0 Then Do If 0<>listdsi("'"dsvar"'" 'NORECALL' ) Then /* is it cataloged?*/ Queue volser':' left(dsvar' ',47,'.')' not catlg' Else If sysvolume <> volser Then /* cataloged elsewhere? */ Queue volser':' left(dsvar' ',47,'.')' catlg on' sysvolume End n=n+1 If time('e') > 5 Then /* give status msg every 5 seconds */ Do; Say 'Processed 'n' names'; Call time 'r'; End End 'LMDFREE LISTID(&LISTIDV)' If queued()>0 Then Do 'VGET (ZSCREEN) SHARED' ddname='$STAT$'zscreen Address tso 'ALLOC F('ddname') UNIT(VIO) DSO(PS) RECFM(V B)', 'LREC(80) NEW DEL REU' Address tso 'EXECIO 'queued()' DISKW 'ddname' (FINIS ' 'LMINIT DATAID(STAT) DDNAME('ddname') ENQ(SHR)' 'EDIT DATAID(&STAT)' 'LMFREE DATAID(&STAT)' Address tso 'FREE F('ddname')' End