Wanted to thank you all for the assistance on my storage issue last week
and give you an update on the solution...
The issue was with VTOCLIST, CBT file 343, and the particular way I was
executing it in my new z/OS 1.10 environment. I have the routine wrapped
in a REXX script which calls it once for each volume in my shop using a
DCOLLECT report as the volume list driver. This process was working fine
in my 1.9 environment - it seems to have been releasing the storage it
obtained in between calls as the SP0 usage never climbed above 376K as the
script was running. However, in my new 1.10 environment it just kept
grabbing storage in SP0 below the line until it abended.
John Kalinich assisted with some properly placed FREEMAIN code expecting it
to help, but that was not quite all that was needed, as in 1.10 it was
still abending. The addition of some well placed FREEPOOL macros finally
did the trick. It should also be noted that we have a new 1.10 parm,
SEZOSV1R9RULES(YES), set to YES - so its suppose to be using the old 1.9
rules for obtaining storage - but obviously something changed.
So, thank you John for your coding assistance and fix. Also thank you Mark
Zelden for testing assistance.
John said he will update CBT 343, VTOCLIST, soon with the new code. Will
be available on www.cbttape.org.
In case you interested, here was the REXX script execution.....
//STEP1 EXEC PGM=IKJEFT01,PARM='VLIST'
//SYSTSPRT DD SYSOUT=*
//SYSPROC DD DISP=SHR,DSN=SE.REXX.LIBRARY
//SYSPRINT DD DISP=(MOD,CATLG),DSN=ISPC.VTOC.OUTPUT(+1),
// DCB=(RECFM=FBA,BLKSIZE=0,LRECL=133,DSORG=PS),
// UNIT=DISK,SPACE=(CYL,(55,5))
//SYSTSIN DD DUMMY
//DCOLL DD DISP=SHR,DSN=SE.DCOLLECT.INPUT
The REXX itself....
/* REXX */
SIGNAL ON ERROR
EXCLUDELIST = "RESCUE SYST01"
"EXECIO * DISKR DCOLL(STEM VOLS. FINIS"
DO I = 1 TO VOLS.0
/* CALL THE VTOCLIST PROGRAM FOR EACH ENTRY IN */
/* THE DCOLLECT DATASET */
PARSE VAR VOLS.I 25 VVVV 31 . 77 U1 78 U2 79 .
IF POS(VVVV,EXCLUDELIST) > 0 THEN ITERATE
PRE = SUBSTR(VVVV,1,2)
IF PRE = "M9" | PRE = "M3" THEN ITERATE
"ALLOC F(SYSUT1) UNIT(DISK) VOLUME("VVVV") SHR ",
"DSNAME('SYS1.VTOCIX."VVVV"')"
IF RC > 0 THEN ITERATE
"CALL 'SYS2.ISS.LOADLIB(VTOCLIST)'"
"FREE F(SYSUT1)"
END
EXIT
ERROR:
RCSAVE = RC
SAY "--ENTERING ERROR ROUTINE"
SAY "--RC = "FINALCODE" FOR LINE "SIGL
SAY SOURCELINE(SIGL)
SAY "--"
EXIT RCSAVE
RETURN
And the DCOLLECT looks like this, of course....
//LISTC EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//OUTDS DD DISP=OLD,DSN=SE.PADMIN.BATCH.PRDRGENR.DCOLL
//SYSIN DD *
DCOLLECT -
OFILE(OUTDS) -
NODATAINFO -
VOLUME(**)
.... and VTOCLIST list came from CBT343, which can be found at
www.cbttape.org.
Thanks.
Jeffrey Deaver, Engineer
Systems Engineering
[email protected]
651-665-4231(v)
IS - "Creating competitive advantage with technology. Providing service
that excels."
OSS - " Where Innovation Happens"
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html