|
View previous topic :: View next topic
|
| Author |
Message |
Susanta
Active User
Joined: 17 Nov 2009 Posts: 129 Location: India
|
|
|
|
Hi
I need to allocate a file within rexx code,
Need to if i can ommit the block size filed,
what are the impacts of not providing blksize.
| Code: |
"ALLOC F(OUTDD) DA('"DSN1"') ",
"NEW CATALOG LRECL(80) RECFM(F B) DSORG(PS)",
"SPACE(10 5) TRACKS UNIT(SYSDA) " |
Thanks |
|
| Back to top |
|
 |
Abid Hasan
New User
Joined: 25 Mar 2013 Posts: 88 Location: India
|
|
|
|
Hello,
But you do not have 'BLKSZ' specified in the snippet shown.
Nevertheless, REXX or otherwise - block size is for a dataset and it tells the system how/how-much data is to be arranged in storage blocks, so the same rules that apply to your normal JCL (where you'd specify a NEW/CATLG, and other definitions parameters, including/excluding BLKSIZE) apply here as well. If you specify a block-size for a DS, then you force the system to comply to certain 'storage rules', if not calculated correctly for a DS having large number of records (read > a mill. records), and say the DS is processed sequentially in batch, you might end up impacting the EXCPs used, CPU used, might end up increasing the clock-time as well; and vice-versa. General recommendation states, skip coding block-size and let system decide it for you - until and unless you're very sure of the number you want to punch in.
PS: Should you choose to calculate the number, do bear in mind the LRECL/Space allocation/expected-number-of-records for the DS as well; you can read more about block-size in the JCL Reference and DFSMS manuals; more information in 'Using Data Sets' manual. |
|
| Back to top |
|
 |
steve-myers
Active Member
Joined: 30 Nov 2013 Posts: 917 Location: The Universe
|
|
|
|
When you allocate a data set as you did here specifying DSORG(PS), using space unit as CYLINDER or TRACK and specifying the RECFM and LRECL, allocation will compute the appropriate system determined BLKSIZE and apply it to the data set.
I have two other observations.- Why are you asking here? You can find out yourself by just executing a LISTD command. For example -
| Code: |
alloc da(test1) sp(1) tra dsorg(ps) recfm(f b) lrecl(80)
READY
listd test1
XXXXXX.TEST1
--RECFM-LRECL-BLKSIZE-DSORG
FB 80 27920 PS
--VOLUMES--
VVVVVV
READY |
There are other ways, of course, but this uses the TSO command line,When you allocate a data set using the ALLOCATE command, the data set will remain allocated to your session until you free it using the FREE DATASET(xxx) command or you logoff |
|
| Back to top |
|
 |
|
|
 |
All times are GMT + 6 Hours |
|