IGGCSIRX is not going to tell you space allocation, but it will give you a list of volumes.
I alter SYS1.SAMPLIB(IGGCSIRX) to accept the search string as an ARGument to the program, instead of its default method of prompting for it.
In the IGGCSIRX you will find two lines at the start:
SAY 'ENTER FILTER KEY' /* ASK FOR FILTER KEY */
PULL KEY /* GET FILTER KEY */
I replace them with:
PARSE ARG KEY
Now the REXX code I created is a quick test, but I have a data set that is allocated on multiple volumes, 2 as a matter of fact and when I run the REXX code:
x = OUTTRAP("LC.")
"%IGGCSIRX MVS.SMF.CAS.DAILY"
x = OUTTRAP("OFF")
The REXX Variable "LC." Contains 4 lines of output:
CATALOG SYS1.INT.ICFCAT
NONVSAM MVS.SMF.CAS.DAILY SMFWKD SMFWKB
As you can see that the IGGCSIRX returns as the first line the catalog the data set information was found in and then after a blank line, the NONVSAM data set, MVS.SMF.CAS.DAILY and that data set is cataloged to the two volumes, SMFWKD & SMFWKB, in that order.
Now using LISTDSI I explicitly hard coded my test using this data set and the two volumes, so the code looks like this:
y = LISTDSI("'MVS.SMF.CAS.DAILY' VOLUME(SMFWKD) NODIRECTORY NORECALL" )
" SMSINFO")
Say "MVS.SMF.CAS.DAILY SMFWKD "y
Say " SYSDSNAME:"SYSDSNAME
Say " SYSVOLUME:"SYSVOLUME
Say " SYSUNITS:"SYSUNITS
Say " SYSALLOC:"SYSALLOC
Say " SYSUSED:"SYSUSED
Say " SYSREASON:"SYSREASON
Say " SYSMSGLVL1:"SYSMSGLVL1
Say " SYSMSGLVL2:"SYSMSGLVL2
Say " SYSDSSMS:"SYSDSSMS
Say "SYSDATACLASS:"SYSDATACLASS
Say "SYSSTORCLASS:"SYSSTORCLASS
Say "SYSMGMTCLASS:"SYSMGMTCLASS
DROP SYSDSNAME
DROP SYSVOLUME
DROP SYSUNITS
DROP SYSALLOC
DROP SYSUSED
DROP SYSREASON
DROP SYSMSGLVL1
DROP SYSMSGLVL2
DROP SYSDSSMS
DROP SYSDATACLASS
DROP SYSSTORCLASS
DROP SYSMGMTCLASS
y = LISTDSI("'MVS.SMF.CAS.DAILY' VOLUME(SMFWKB) NODIRECTORY NORECALL" ,
" SMSINFO")
Say "MVS.SMF.CAS.DAILY SMFWKD "y
Say " SYSDSNAME:"SYSDSNAME
Say " SYSVOLUME:"SYSVOLUME
Say " SYSUNITS:"SYSUNITS
Say " SYSALLOC:"SYSALLOC
Say " SYSUSED:"SYSUSED
Say " SYSREASON:"SYSREASON
Say " SYSMSGLVL1:"SYSMSGLVL1
Say " SYSMSGLVL2:"SYSMSGLVL2
Say " SYSDSSMS:"SYSDSSMS
Say "SYSDATACLASS:"SYSDATACLASS
Say "SYSSTORCLASS:"SYSSTORCLASS
Say "SYSMGMTCLASS:"SYSMGMTCLASS
EXIT
A couple of things to note, this data set is currently empty, so only SYSALLOC will have a value, the SYSUSED will be 0 (zero), but you can tell that it is getting the information by specific volume and this data set is NOT SMS managed.
So when I run the REXX code I get:
MVS.SMF.CAS.DAILY SMFWKD 4
SYSDSNAME:MVS.SMF.CAS.DAILY
SYSVOLUME:SMFWKD
SYSUNITS:CYLINDER
SYSALLOC:3338
SYSUSED:0
SYSREASON:0030
SYSMSGLVL1:IKJ58418I PARTIAL DATA SET INFORMATION NOT OBTAINED.
SYSMSGLVL2:IKJ58430I SMSINFO IS SPECIFIED, HOWEVER DATA SET NOT SMS MANAGED.
SYSDSSMS:SEQ
SYSDATACLASS:
SYSSTORCLASS:
SYSMGMTCLASS:
MVS.SMF.CAS.DAILY SMFWKD 4
SYSDSNAME:MVS.SMF.CAS.DAILY
SYSVOLUME:SMFWKB
SYSUNITS:CYLINDER
SYSALLOC:3314
SYSUSED:0
SYSREASON:0030
SYSMSGLVL1:IKJ58418I PARTIAL DATA SET INFORMATION NOT OBTAINED.
SYSMSGLVL2:IKJ58430I SMSINFO IS SPECIFIED, HOWEVER DATA SET NOT SMS MANAGED.
SYSDSSMS:SEQ
SYSDATACLASS:
SYSSTORCLASS:
SYSMGMTCLASS:
------------------------------------------------------
As you can see, the two SYSALLOC values are different.
ISPF Info shows:
MVS.SMF.CAS.DAILY SMFWKD+
99780 0 2 3390 ,PS VBS 32767 27998,2010/07/04 2014/03/07
SYS1.INT.ICFCAT
3338+3314=6652
99780/15=6652
Al Nims
Systems Admin/Programmer 3
Information Technology
University of Florida
(352) 273-1298