View previous topic :: View next topic
|
Author |
Message |
loga_nathan_m
New User
Joined: 07 Jun 2007 Posts: 40 Location: India
|
|
|
|
Hi all,
i have a requirement where i merge 28 files and create 1 single output file. The number of records in the files are about 5 million. When i give the space parameter as SPACE = (TRK,(2500,500),RLSE) the JCL runs fine. If the number of records is increased to 6 million it gives abend.
My question is
1.what is the maximum value of track that can be given space parameter?
2.creating a JCL with track's having the maximum value is good programing standard or not.
Thanks,
M.Loganathan |
|
Back to top |
|
|
expat
Global Moderator
Joined: 14 Mar 2007 Posts: 8796 Location: Welsh Wales
|
|
|
|
1) A dataset may not exceed 65,536 tracks
2) Definitely not - if every dataset initially requests the maximum allowable you will experience a whole boatload of JCL and/or space errors. |
|
Back to top |
|
|
loga_nathan_m
New User
Joined: 07 Jun 2007 Posts: 40 Location: India
|
|
|
|
Hi expat,
my input contains around 1 to 10 million records. it keeps varying. coding the space parameter as SPACE = (CYL,(2500,500),RLSE) would be find right, as this space is working fine for 10 million records.
Let me know your views. |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
expat: under z/OS 1.10, large format and extended format sequential files can exceed 65,535 tracks per volume. And I'm sure you meant 65,535 tracks per volume -- sequential datasets can be on as many as 59 volumes and use up to 65,535 tracks per volume.
Loga: 1 million, 10 million records -- the key piece of data you're not sharing with us is how long are the records? 10 million 20 byte records takes up a whole lot less space than 10 million 2000 byte records. 10 million 20 byte records could go into a 300-cylinder data set while 10 million 2000 byte records will require multiple volumes to hold it. |
|
Back to top |
|
|
loga_nathan_m
New User
Joined: 07 Jun 2007 Posts: 40 Location: India
|
|
|
|
28 files are merged to get a 10 million record 5000 byte file which is again stripped to 10 millon record 140 byte file. |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
10 million 140 byte records requires 1676 cylinders using half track blocking. Using 2500 cylinders is overkill unless you specify RLSE on the allocation. |
|
Back to top |
|
|
loga_nathan_m
New User
Joined: 07 Jun 2007 Posts: 40 Location: India
|
|
|
|
Quote: |
using half track blocking |
i dont understand the above term. |
|
Back to top |
|
|
Bill Dennis
Active Member
Joined: 17 Aug 2007 Posts: 562 Location: Iowa, USA
|
|
|
|
Half-track blocking: To use DASD most efficiently, a BLKSIZE that fills 1/2 track is best. Using BLKSIZE=0 in your JCL lets the system choose a half-track block size based on the output device. |
|
Back to top |
|
|
superk
Global Moderator
Joined: 26 Apr 2004 Posts: 4652 Location: Raleigh, NC, USA
|
|
|
|
Once again, I have to ask - isn't all of this discussion moot with SMS managing the storage needs? |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
I seriously question whether or not you know enough to ask the type of question you originally posted if you don't understand half track blocking.
Basic geometry:
a 3390 DASD device has 56,664 bytes per track, 15 tracks per cylinder, and some number of cylinders per volume (3339 and 10017 are both common).
a 3390 DASD device is CKD which means there is some overhead, leaving less than 56,664 bytes available
a sequential dataset cannot exceed 32,760 bytes per block, so you cannot allocate a full track in one block
the most optimal blocking factor (at least for sequential files) therefore is to allocate one-half of a track per block; 27998 bytes per block allows 2 blocks per track and minimizes wasted space. Hence, half-track blocking
Smaller block sizes are often beneficial with online systems since you may only need a few bytes (one record) but must read the entire block to get those bytes. |
|
Back to top |
|
|
rahulbank
New User
Joined: 25 Sep 2008 Posts: 66 Location: Bengaluruuuuuu
|
|
|
|
Sorry to interfere .
Robert this is great information which you have shared and thanks for that. I was not aware of half track blocking too. Of course I understand you learnt it but is there some red book or something which speaks more of such things. If yes please share. |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8700 Location: Dubuque, Iowa, USA
|
|
|
|
I'm not even sure where or when I learned about it ... probably 20 years ago or more -- the 3390 was announced in 1991 and we were using the same principles for 3380 devices before that. IF you're running SMS, AND the dataset is being created under SMS control, AND you specify BLKSIZE=0 you will get half-track blocking automatically.
If you Google GX26-4577 you can find the 3390 reference summary which gives a lot of detail about block sizes and relative efficiency. |
|
Back to top |
|
|
|