View previous topic :: View next topic
|
Author |
Message |
vijaykumar pande
New User
Joined: 28 Jun 2007 Posts: 1 Location: Mumbai
|
|
|
|
What advantage of specify BLKSIZE=0 when allocat newdataset |
|
Back to top |
|
|
sandeep1dimri
New User
Joined: 30 Oct 2006 Posts: 76
|
|
Back to top |
|
|
sandeep1dimri
New User
Joined: 30 Oct 2006 Posts: 76
|
|
|
|
Hi
It signifies the number of records in one block. And we provide BLKSIZE=0 means that we are not sure on the number of records in the block and so SMS takes care of BLKSIZE while allocating space for dataset. And it optimisze the number of records in one block.
So BLKSIZE=0 means optimize the number of records in one block.
Thanks
sandeep. |
|
Back to top |
|
|
vicky10001 Warnings : 1 Active User
Joined: 13 Jul 2005 Posts: 136
|
|
|
|
How need to calculate BLKSIZE?
Example
LRECL = 800 |
|
Back to top |
|
|
expat
Global Moderator
Joined: 14 Mar 2007 Posts: 8797 Location: Welsh Wales
|
|
|
|
vijaykumar pande
Quote: |
What advantage of specify BLKSIZE=0 when allocat newdataset |
BLKSIZE=0 can often cause problems if the dataset is not opened and closed unless your SMS environment has been correctly established.
If it has not, then the BLKSIZE=0 will be honoured and the dataset will have that attribute, which makes the dataset invalid for processing by DFHSM, or whatever other ILM software you use.
The correct coding is RECFM=xx,LRECL=nnn
vicky10001
Quote: |
How need to calculate BLKSIZE?
Example
LRECL = 800 |
The calculation, should you wish to do it manually depends on the geometry of the DASD installed at your shop. The industry standard is currently 3390, which has an optimum BLKSIZE=27998.
This is great for VB files, RECFM=VB,LRECL=100,BLKSIZE=27998
For FB files, the formula is
INT(27998 / LRECL) * LRECL
But hey, why not let the system do it for you ..... it knows best |
|
Back to top |
|
|
Anuj Dhawan
Superior Member
Joined: 22 Apr 2006 Posts: 6250 Location: Mumbai, India
|
|
|
|
Yup, this
Quote: |
The correct coding is RECFM=xx,LRECL=nnn |
is the best approach. Code this for your new dataset & let the system decide about BLKSIZE.
Expat,
I got a query here, I ran a test JOB:
Code: |
//SORTIN DD DSN=HLQ.FIRST.FILE,
// DISP=SHR
//SORTOUT DD DSN=HLQ.FIRST.FILE.JUL19A,
// DISP=(NEW,CATLG,CATLG),
// DSORG=PS,
// RECFM=FB,
// DATACLAS=LARGE,
// UNIT=SYSDA
//SORTWK01 DD UNIT=SYSDA,SPACE=(CYL,(20,5))
//SYSIN DD *
SORT FIELDS=(1,3,CH,A)
/*
//SORTMSG DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//CEEDUMP DD SYSOUT=*
//* |
First with BLKSIZE=0 & second time without BLKSIZE parameter. In both the cases I got Block size . . . . : 27920, why so? Does that mean, coding
BLKSIZE=0 & not coding it at all, are same? |
|
Back to top |
|
|
expat
Global Moderator
Joined: 14 Mar 2007 Posts: 8797 Location: Welsh Wales
|
|
|
|
It is almost the same, except that when the dataset is not opened then the BLKSIZE will equal 0.
If you use BLKSIZE=0 and the dataset is opened and closed by your program, it is the same as coding RECFM=xx,LRECL=nnn |
|
Back to top |
|
|
Anuj Dhawan
Superior Member
Joined: 22 Apr 2006 Posts: 6250 Location: Mumbai, India
|
|
|
|
Thanks Expat, got it. |
|
Back to top |
|
|
|