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.
Joined: 30 Nov 2013 Posts: 590 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 -
alloc da(test1) sp(1) tra dsorg(ps) recfm(f b) lrecl(80)
FB 80 27920 PS
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