In a recent note, Ron and Jenny Hawkins said:

> Date:         Sat, 1 Jul 2006 09:38:04 +0800
> 
> I don't see it as counterintuitive at all. My recollection is that AVGBLK as
> value for SPACE was around well before the AVGREC parm became available.
> 
>         SPACE=(27998,(1000,100)) where 27998 is AVGBLK
> 
> A requirement to specify space based on number of records of a given size
> was serviced by providing the AVGREC parameter, which acts as a switch to
> say that the first value SPACE Parm is AVGREC instead of AVGBLK, and to use
> the subparm as a multiplier for primary and secondary space requests.
> 
>         SPACE=(1024,(1000,100)),AVGREC=K where 1024 is AVGREC
> 
> I've used this rather simple JCL technique for around 10 years. I have
> endured nothing because it such a damn easy thing to use.
> 
> However, I do like the suggestion to use K and M shorthand for the Space
> subparms, but don't you think that a switch would still be required to have
> the first subparm interpreted as AVGBLK or AVGREC?
> 
I'm still trying to grasp what records, or their size, means to
allocation.  I thought records come into play only later, at access
method time.  So, I tried an experiment:

    //
    //SIZES     JOB  'Account','Paul Gilmartin',
    // MSGLEVEL=(1,1),REGION=0M
    //*
    //* Test various suboptions of SPACE=
    //*
    //USERC    OUTPUT JESDS=ALL,DEFAULT=YES,
    //  CLASS=R,PAGEDEF=V0648Z,CHARS=GT12
    //*
    //DOIT     PROC
    //*
    //ALC      EXEC  PGM=IEFBR14
    //SYSUT1    DD   DISP=(MOD,CATLG),UNIT=SYSALLDA,
    //  SPACE=(10000,&NUM)&AVG,DSN=&SYSUID..AVGALC&SUF
    //*
    //GEN      EXEC  PGM=IEBGENER
    //SYSPRINT  DD   SYSOUT=(,)
    //SYSIN     DD   DUMMY
    //SYSUT2    DD   DISP=(MOD,CATLG),UNIT=SYSALLDA,
    //  SPACE=(10000,&NUM)&AVG,DSN=&SYSUID..AVGGEN&SUF
    //SYSUT1    DD   DISP=SHR,DSN=SYS1.MACLIB(GIMZPOOL)
    //*
    //DOIT     PEND
    //*
    //NONE     EXEC  DOIT,NUM=1024,AVG=,SUF=N
    //UNIT     EXEC  DOIT,NUM=1024,AVG=',AVGREC=U',SUF=U
    //KIBI     EXEC  DOIT,NUM=1,AVG=',AVGREC=K',SUF=K
    //*
    //*  :w ! submit

The results from ISPF DSLIST, without and with AVGREC=U:

                              Data Set Information

 Data Set Name  . . . : SPPG.AVGALCN

 General Data                          Current Allocation
  Volume serial . . . : TSO008          Allocated tracks  . : 205
  Device type . . . . : 3390            Allocated extents . : 1
  Organization  . . . : NONE
  Record format . . . : ?
  Record length . . . : 0
  Block size  . . . . : 0              Current Utilization
  1st extent tracks . : 205             Used tracks . . . . : 0
  Secondary blocks  . : 0               Used extents  . . . : 0

                              Data Set Information

 Data Set Name  . . . : SPPG.AVGALCU

 General Data                          Current Allocation
  Volume serial . . . : TSOCT1          Allocated tracks  . : 209
  Device type . . . . : 3390            Allocated extents . : 1
  Organization  . . . : NONE
  Record format . . . : ?
  Record length . . . : 0
  Block size  . . . . : 0              Current Utilization
  1st extent tracks . : 209             Used tracks . . . . : 0
  Secondary bytes . . : 0               Used extents  . . . : 0

So, why do I get slightly more tracks with AVGREC=U than without?
Why is the first extent displayed in tracks when I specified a
unit of blocks or records respectively?  Why is the (unused)
secondary displayed in blocks in one case, and bytes in the other?

And, when initialized by IEBGENER:

                              Data Set Information

 Data Set Name  . . . : SPPG.AVGGENN

 General Data                          Current Allocation
  Volume serial . . . : TSO032          Allocated blocks  . : 410
  Device type . . . . : 3390            Allocated extents . : 5
  Organization  . . . : PS
  Record format . . . : FB
  Record length . . . : 80
  Block size  . . . . : 27920          Current Utilization
  1st extent blocks . : 70              Used blocks . . . . : 1
  Secondary blocks  . : 0               Used extents  . . . : 1

                              Data Set Information

 Data Set Name  . . . : SPPG.AVGGENU

 General Data                          Current Allocation
  Volume serial . . . : TSO019          Allocated bytes . . : 11,670,560
  Device type . . . . : 3390            Allocated extents . : 4
  Organization  . . . : PS
  Record format . . . : FB
  Record length . . . : 80
  Block size  . . . . : 27920          Current Utilization
  1st extent bytes  . : 3350400         Used bytes  . . . . : 27,920
  Secondary bytes . . : 0               Used extents  . . . : 1

Why does it say I have 410 blocks when I asked for 1024?

Etc.

Are the formulae used published anywhere?

And, basically, this user would prefer to be able to specify:

    SPACE=(BYTE,10G)

... and let the computer perform the computation.

-- gil
-- 
StorageTek
INFORMATION made POWERFUL

----------------------------------------------------------------------
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

Reply via email to