Discussion:
Allocating an SMS managed dataset in TSO with space in bytes
Add Reply
Mike Fulton
2018-05-15 06:58:48 UTC
Reply
Permalink
Raw Message
Hi

I know in ISPF under 3.2, if I am allocating a dataset and it is SMS-managed, I can specify the space in bytes (e.g. megabytes) instead of tracks or cylinders or blocks. Is there a similar way to do this from the TSO ALLOC command? Looking at the manual, I can't see it, but I would have thought if it could be done in ISPF, it could be done in TSO...

thanks, mike
Kurt Quackenbush
2018-05-15 12:56:40 UTC
Reply
Permalink
Raw Message
Post by Mike Fulton
Hi
I know in ISPF under 3.2, if I am allocating a dataset and it is
SMS-managed, I can specify the space in bytes (e.g. megabytes)
instead of tracks or cylinders or blocks. Is there a similar way to
do this from the TSO ALLOC command? Looking at the manual, I can't
see it, but I would have thought if it could be done in ISPF, it
could be done in TSO...
It sure would be simpler if you could just specify the number of bytes,
but that's not how it works. Instead you specify the length of an
average record (AVBLOCK) in bytes and the multiplier (AVREC).
https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.1.0/com.ibm.zos.v2r1.ikjc500/alloccmd.htm

Kurt Quackenbush -- IBM, SMP/E Development

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
John McKown
2018-05-15 13:32:06 UTC
Reply
Permalink
Raw Message
Post by Kurt Quackenbush
Post by Mike Fulton
Hi
I know in ISPF under 3.2, if I am allocating a dataset and it is
SMS-managed, I can specify the space in bytes (e.g. megabytes)
instead of tracks or cylinders or blocks. Is there a similar way to
do this from the TSO ALLOC command? Looking at the manual, I can't
see it, but I would have thought if it could be done in ISPF, it
could be done in TSO...
It sure would be simpler if you could just specify the number of bytes,
but that's not how it works. Instead you specify the length of an average
record (AVBLOCK) in bytes and the multiplier (AVREC).
https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.1.0/
com.ibm.zos.v2r1.ikjc500/alloccmd.htm
S
​o you simply set AVBLOCK to 1 and AVREC to number of bytes?​

Post by Kurt Quackenbush
Kurt Quackenbush -- IBM, SMP/E Development
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
--
We all have skeletons in our closet.
Mine are so old, they have osteoporosis.

Maranatha! <><
John McKown

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Mike Schwab
2018-05-15 16:05:06 UTC
Reply
Permalink
Raw Message
On Tue, May 15, 2018 at 8:33 AM, John McKown
Post by John McKown
Post by Kurt Quackenbush
Post by Mike Fulton
Hi
I know in ISPF under 3.2, if I am allocating a dataset and it is
SMS-managed, I can specify the space in bytes (e.g. megabytes)
instead of tracks or cylinders or blocks. Is there a similar way to
do this from the TSO ALLOC command? Looking at the manual, I can't
see it, but I would have thought if it could be done in ISPF, it
could be done in TSO...
It sure would be simpler if you could just specify the number of bytes,
but that's not how it works. Instead you specify the length of an average
record (AVBLOCK) in bytes and the multiplier (AVREC).
https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.1.0/
com.ibm.zos.v2r1.ikjc500/alloccmd.htm
S
o you simply set AVBLOCK to 1 and AVREC to number of bytes?
It would include a lot of inter record gap space.
Even AVGREC=80 and using blocksize 8000 would add a lot of inter
record gap space.
--
Mike A Schwab, Springfield IL USA
Where do Forest Rangers go to get away from it all?

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
John McKown
2018-05-15 16:39:40 UTC
Reply
Permalink
Raw Message
Post by Mike Schwab
On Tue, May 15, 2018 at 8:33 AM, John McKown
Post by John McKown
Post by Kurt Quackenbush
Post by Mike Fulton
Hi
I know in ISPF under 3.2, if I am allocating a dataset and it is
SMS-managed, I can specify the space in bytes (e.g. megabytes)
instead of tracks or cylinders or blocks. Is there a similar way to
do this from the TSO ALLOC command? Looking at the manual, I can't
see it, but I would have thought if it could be done in ISPF, it
could be done in TSO...
It sure would be simpler if you could just specify the number of bytes,
but that's not how it works. Instead you specify the length of an
average
Post by John McKown
Post by Kurt Quackenbush
record (AVBLOCK) in bytes and the multiplier (AVREC).
https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.1.0/
com.ibm.zos.v2r1.ikjc500/alloccmd.htm
S
o you simply set AVBLOCK to 1 and AVREC to number of bytes?
It would include a lot of inter record gap space.
Even AVGREC=80 and using blocksize 8000 would add a lot of inter
record gap space.
I was thinking of doing something like:
SPACE=(1,(1048576,1048576)),RECFM=U,BLKSIZE=27998,AVGREC=U to get about
1MiB of disk space. When I ran a job to do that, the dataset was allocated
19 tracks. 19*56K=1064K or about 1MiB. If I change the BLKSIZE= to 8000
instead, I get 22 tracks. So DADSM is properly calculating the inter-block
gap to give me enough space to store about 1MiB of user data in my dataset,
assuming that every block is BLKSIZE length. My first example is 1/2 track
blocking, which is what I use a lot when I put the contents of a UNIX file
into a z/OS dataset; especially the output from PAX. In the past, I used
RECFM=FB,LRECL=1,BLKSIZE=27998 for PAX output because I was thinking that
was a good way to indicate that the data was a "byte stream".
Post by Mike Schwab
--
Mike A Schwab, Springfield IL USA
Where do Forest Rangers go to get away from it all?
--
We all have skeletons in our closet.
Mine are so old, they have osteoporosis.

Maranatha! <><
John McKown

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Paul Gilmartin
2018-05-15 13:46:02 UTC
Reply
Permalink
Raw Message
Post by John McKown
​o you simply set AVBLOCK to 1 and AVREC to number of bytes?​

Probably not. Do you mean AVGREC? From the JCL Ref.:
DD:AVGREC
Syntax
AVGREC= {U} {K} {M}

Moronic design. Why did they do it that way? I suspect the party
responsible is no longer available to explain.

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
John McKown
2018-05-15 14:06:13 UTC
Reply
Permalink
Raw Message
On Tue, May 15, 2018 at 8:47 AM, Paul Gilmartin <
Post by Paul Gilmartin
Post by John McKown
​o you simply set AVBLOCK to 1 and AVREC to number of bytes?​

Yes, AVREC was a typo on my part.

WHINE: a couple of S.O.B. here forced me to get a "new" keyboard because my
old one was "too noisy and I can't think when he is typing". They can't
think most of the time anyway. Of course, setting the speaker phones on
medium and talking at 50 dB for 10 minutes is just fine; when they do it.
Post by Paul Gilmartin
DD:AVGREC
Syntax
AVGREC= {U} {K} {M}
Moronic design. Why did they do it that way? I suspect the party
responsible is no longer available to explain.
-- gil
--
We all have skeletons in our closet.
Mine are so old, they have osteoporosis.

Maranatha! <><
John McKown

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Mike Fulton
2018-05-16 07:32:39 UTC
Reply
Permalink
Raw Message
Post by Mike Fulton
Hi
I know in ISPF under 3.2, if I am allocating a dataset and it is SMS-managed, I can specify the space in bytes (e.g. megabytes) instead of tracks or cylinders or blocks. Is there a similar way to do this from the TSO ALLOC command? Looking at the manual, I can't see it, but I would have thought if it could be done in ISPF, it could be done in TSO...
thanks, mike
Thanks everyone for the pointers. I had seen AVREC and AVBLOCK but not made the connection. Thanks!
Tim Hare
2018-05-16 21:30:45 UTC
Reply
Permalink
Raw Message
AVGREC=M,SPACE=(1,(1,1)) allocates one MB with a 1MB secondary extension in JCL.

AVGREC(M) AVBLOCK(1) SPACE(1,1) will do the same thing in TSO.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Graham Harris
2018-05-16 23:21:55 UTC
Reply
Permalink
Raw Message
When AVGREC/AVGVAL came about in the early SMS era, I thought, given our
generally records-based view on things in the z/OS world, it would be
'nice' if logical space allocations could be done effectively requesting
numbers of records (as an alternative to having to explicitly request
bytes).

Thus potentially allowing dataclasses to specify 'x'
thousand/million/billion/etc records, and let 'the system' calculate the
required space based on the specified lrecl (even if overidden).

I seem to recall i may have attempted to raise a share requirement to that
effect, but seemingly didnt go anywhere.
Post by Tim Hare
AVGREC=M,SPACE=(1,(1,1)) allocates one MB with a 1MB secondary extension in JCL.
AVGREC(M) AVBLOCK(1) SPACE(1,1) will do the same thing in TSO.
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Tim Hare
2018-05-17 14:40:36 UTC
Reply
Permalink
Raw Message
This is, actually, a request for records - I was using the 1-byte average record size because I thought the original poster wanted to allocate in megabytes. If you want to request records and you know the LRECL or the average LRECL, use AVGREC=U/K/M, and SPACE=(avgLRECL,(pri,sec)) where 'pri' and 'sec' are in records (AVGREC=U), thousands of records (AVGREC=K), or millions of records (AVGREC=M).

My only problem with this was convincing application programmers to use it. I used it all the time, but still found application programmers trying to calculate efficient block sizes (they did, eventually, see the BLKSIZE=0 light) and use various 'space calculators' to come up with a number of cylinders. I proposed, but never got to do, a 'what you don't know about zOS' class to touch on some of these things.

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
John McKown
2018-05-17 14:42:56 UTC
Reply
Permalink
Raw Message
Post by Tim Hare
This is, actually, a request for records - I was using the 1-byte average
record size because I thought the original poster wanted to allocate in
megabytes. If you want to request records and you know the LRECL or the
average LRECL, use AVGREC=U/K/M, and SPACE=(avgLRECL,(pri,sec)) where
'pri' and 'sec' are in records (AVGREC=U), thousands of records (AVGREC=K),
or millions of records (AVGREC=M).
My only problem with this was convincing application programmers to use
it. I used it all the time, but still found application programmers trying
to calculate efficient block sizes (they did, eventually, see the BLKSIZE=0
light) and use various 'space calculators' to come up with a number of
cylinders. I proposed, but never got to do, a 'what you don't know about
zOS' class to touch on some of these things.
​I remember a few years ago, when I was going over this facility with some
programmers, one of them said something along the lines of "I don't know
how many records I need. I just know that I need 100 cylinders."​
--
We all have skeletons in our closet.
Mine are so old, they have osteoporosis.

Maranatha! <><
John McKown

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Clark Morris
2018-05-18 15:07:56 UTC
Reply
Permalink
Raw Message
Post by Tim Hare
This is, actually, a request for records - I was using the 1-byte average
record size because I thought the original poster wanted to allocate in
megabytes. If you want to request records and you know the LRECL or the
average LRECL, use AVGREC=U/K/M, and SPACE=(avgLRECL,(pri,sec)) where
'pri' and 'sec' are in records (AVGREC=U), thousands of records (AVGREC=K),
or millions of records (AVGREC=M).
My only problem with this was convincing application programmers to use
it. I used it all the time, but still found application programmers trying
to calculate efficient block sizes (they did, eventually, see the BLKSIZE=0
light) and use various 'space calculators' to come up with a number of
cylinders. I proposed, but never got to do, a 'what you don't know about
zOS' class to touch on some of these things.
?I remember a few years ago, when I was going over this facility with some
programmers, one of them said something along the lines of "I don't know
how many records I need. I just know that I need 100 cylinders."?
Depending on the difference in overhead between track and cylinder
allocation for non-VSAM these days and whether the cylinder allocation
can be forced for VSAM (for optimal CA size for larger data sets that
have multiple extents) you may need to use the ROUND parameter.

Clark Morris

Paul Gilmartin
2018-05-17 16:20:55 UTC
Reply
Permalink
Raw Message
Post by John McKown
​I remember a few years ago, when I was going over this facility with some
programmers, one of them said something along the lines of "I don't know
how many records I need. I just know that I need 100 cylinders."​
Likewise, many years ago in Q&A after a presentation by an IBM rep, an
audience member asked, "One megabyte? How many cylinders is that?"

(Bytes have remained the same size, on all device types.)

-- gil

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to ***@listserv.ua.edu with the message: INFO IBM-MAIN
Loading...