|
|
| Author |
Message |
Anuj D.
Global Moderator
Joined: 22 Apr 2006 Posts: 2228 Location: Phoenix, AZ
|
|
|
|
Hi,
I got one query to ask for the below JCL, which can be used to copy file from tape to DASD.
| Code: |
//STEP1OF1 EXEC PGM=IEBGENER
//STATOUT DD SYSOUT=*
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
//SYSOUD DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD DUMMY
//SYSUT1 DD DISP=SHR,DSN=TAPE FILE
//SYSUT2 DD DSN=DASD FILE
// DISP=(NEW,CATLG,DELETE),
// UNIT=(SYSDA,3),
// SPACE=(TRK,(15,30),RLSE),
// DCB=*.SYSUT1 <--- DCB CHARACTERISCS OF INPUT |
This JCL is with IEBGENER which make use of
where SYSUT1 is for Tape file & above DCB is coded for DASD file(DD name SYSUT2). From the posts of experinced Mainframees, I learn that this is a bad coding habit, as coding this will make system to use the BLKSIZE of the tape dataset & I'll waste a lot of DASD space by bad blocking.
I would like to know the physical significance of the line
| Quote: |
| I'll waste a hell of a lot of DASD space by bad blocking. |
My query is, what actually happens at system level when one use such a code?
I hope, my query is clear. Please advise. |
|
| Back to top |
|
 |
References
|
|
 |
Moved: Wed Aug 01, 2007 6:02 pm by dick scherrer From DFSORT/ICETOOL to JCL |
dick scherrer
Global Moderator
Joined: 23 Nov 2006 Posts: 8731 Location: 221 B Baker St
|
|
|
|
Hello Anuj,
When creating a dasd file, it is more efficient to let the system determine the block size. When your dasd is upgraded, the system will automatically consider the dasd device and select the "best" blocksize.
When copying a file and the dcb for SYSUT2 is not specified and the devices are the same, the dcb from the input is used for the output (there is a message in the sysout saying the input dcb was used). I'm not sure what happens when the devices are different, but it would not be hard to test. |
|
| Back to top |
|
 |
expat
Global Moderator
Joined: 14 Mar 2007 Posts: 3544 Location: Brussels once more ...
|
|
|
|
The optimum blocksize for tape is 32760, whilst for 3390 is 27998.
Using 27998 each track will contain 2 blocks.
An example using FB, 80
For tape the blksize will be 32720, with each block containing 409 records.
For 3390 the blksize should be 27920, with each block containing 349 records. 2 blocks per track = 2 * 349 = 698 records per track.
Code DCB=*.SYSUT1 you will then use BLKSIZE=32720 and you only get one block per track with 409 records, instead of 698 when you use BLKSIZE=27920.
(189 / 698) * 100 = 27%. Therefor you are only utilising 73% of the available DASD capacity. Which means that you need to allocate 27% more DASD to store the same number of records. |
|
| Back to top |
|
 |
Anuj D.
Global Moderator
Joined: 22 Apr 2006 Posts: 2228 Location: Phoenix, AZ
|
|
|
|
Thanks Dick.
Thanks expat, now that's a typical expat explanation . But, now I've got some queris to ask about, listed below:
| expat wrote: |
| Using 27998 each track will contain 2 blocks. |
Please let me know, what is the number of blocks per track for tape?
| expat wrote: |
| (189 / 698) * 100 = 27%. |
I think in this calculaiton, numerator should be 289.[= (no. of records per track in DASD) - ( no. of records per track on tape)= (2*349)- (409)=698 - 409 = 289]
Am I right with the calculations, if yes, then the code DCB=*.SYSUT1 will waste (289/698)*100 ~= 42% of DASD. Please advise. |
|
| Back to top |
|
 |
expat
Global Moderator
Joined: 14 Mar 2007 Posts: 3544 Location: Brussels once more ...
|
|
|
|
anuj_model
Good spot, well done, yes it is 42%.
Damn, I am getting old now that I need to use CALCULATOR for simple sums
I am impressed - this means that some of you actually read what I put here  |
|
| Back to top |
|
 |
expat
Global Moderator
Joined: 14 Mar 2007 Posts: 3544 Location: Brussels once more ...
|
|
|
|
| Quote: |
| Please let me know, what is the number of blocks per track for tape? |
Tapes don't work like that. They just get written on, but like DASD, the bigger the block size the less inter block gaps there are, so the higher the media utilisation is. |
|
| Back to top |
|
 |
Anuj D.
Global Moderator
Joined: 22 Apr 2006 Posts: 2228 Location: Phoenix, AZ
|
|
|
|
| expat wrote: |
| Damn, I am getting old now |
No expat, this is not that way, actually you are getting more & more experienced, and Youths like me can look up to you
| expat wrote: |
| I am impressed |
Thanks for the kind words.
| expat wrote: |
this means that some of you actually read what I put here  |
Yes, some member are very experinced, techie & humble at the same time. What else do I need to have..a lot of my queris get solved without any dollor-cheque.
Thanks again for being here. |
|
| Back to top |
|
 |
expat
Global Moderator
Joined: 14 Mar 2007 Posts: 3544 Location: Brussels once more ...
|
|
|
|
| Quote: |
| ..a lot of my queris get solved without any dollor-cheque. |
Invoice in the post  |
|
| Back to top |
|
 |
dick scherrer
Global Moderator
Joined: 23 Nov 2006 Posts: 8731 Location: 221 B Baker St
|
|
|
|
| Quote: |
| What else do I need to have..a lot of my queris get solved without any dollor-cheque. |
We're just setting you up for a really big bill later. . .  |
|
| Back to top |
|
 |
Anuj D.
Global Moderator
Joined: 22 Apr 2006 Posts: 2228 Location: Phoenix, AZ
|
|
|
|
| expat wrote: |
Invoice in the post  |
| dick scherrer wrote: |
We're just setting you up for a really big bill later. . . |
Ah..aa.. I am ready for big bills if you guys gonna be around till I pay my bills.  |
|
| Back to top |
|
 |
mmwife
Super Moderator
Joined: 30 May 2003 Posts: 1506
|
|
|
|
Hi Anju,
Give "DCB=*.SYSUT1,BLKSIZE=0" a try, it should o'ride the tape blksize. |
|
| Back to top |
|
 |
Anuj D.
Global Moderator
Joined: 22 Apr 2006 Posts: 2228 Location: Phoenix, AZ
|
|
|
|
Hi,
Tried this way
| Code: |
//STEP1OF1 EXEC PGM=IEBGENER
//SYSIN DD DUMMY
//SYSUT1 DD DISP=SHR,DSN=TAPE FILE
//SYSUT2 DD DSN=HLQ.FILE.ON.DASD.BLKSIZE.ZERO,
// DISP=(NEW,CATLG,DELETE),
// UNIT=SYSDA,
// SPACE=(TRK,(15,30),RLSE),
// BLKSIZE=0 |
And
| Code: |
//STEP1OF1 EXEC PGM=IEBGENER
//SYSIN DD DUMMY
//SYSUT1 DD DISP=SHR,DSN=TAPE FILE
//SYSUT2 DD DSN=HLQ.FILE.ON.DASD.SYSUT1
// DISP=(NEW,CATLG,DELETE),
// UNIT=(SYSDA,3),
// SPACE=(TRK,(15,30),RLSE),
// DCB=*.SYSUT1 |
in both the cases the DCB of SYSUT2 file were
| Code: |
General Data Current Allocation
Management class . . : TPS035 Allocated cylinders : 1
Storage class . . . : DEFAULT Allocated extents . : 1
Volume serial . . . : MIZABD
Device type . . . . : 3390
Data class . . . . . : NONSTD Current Utilization
Organization . . . : PS Used cylinders . . : 1
Record format . . . : FB Used extents . . . : 1
Record length . . . : 80
Block size . . . . : 27920
1st extent cylinders: 1
Secondary cylinders : 3
Data set name type : __________ SMS Compressible : NO
Creation date . . . : 2008/07/21 Referenced date . . : 2008/07/21
Expiration date . . : ***None***
|
Might be I'm reaching to my conclusion rather fast, but does this
really wastes DASD's space ? I need to experiment with some more TAPE files I think, however, please provide some direction if someone has experimented earlier .. |
|
| Back to top |
|
 |
gcicchet
Senior Member
Joined: 28 Jul 2006 Posts: 663
|
|
|
|
Hi Anuj,
I think you will find that when you invoke IEBGENER with SYSIN DD DUMMY, you are actually running DFSORT, DFSORT appears to be a little smarter than some of the other utilities and depending on whether it's sysda or cart, it uses the most efficient blocking factor.
If use FILEAID or IEBGENER with SYSIN DD * it will use the input blocksize when using DCB=*.input ddname or
DCB=*.input-ddname,BLKSIZE=80
IEBGENER with SYSIN DD * invokes the IBM utility IEBGENER.
Gerry |
|
| Back to top |
|
 |
Anuj D.
Global Moderator
Joined: 22 Apr 2006 Posts: 2228 Location: Phoenix, AZ
|
|
|
|
Hi Gerry,
| Quote: |
| I think you will find that when you invoke IEBGENER with SYSIN DD DUMMY, you are actually running DFSORT, DFSORT appears to be a little smarter than some of the other utilities and depending on whether it's sysda or cart, it uses the most efficient blocking factor. |
It was something new & great knowledge point for me, Thanks..
I used IEBGENER with SYSIN DD * but still got the same attibutes as posted in previous post.
I think, I'm on little worng track; first I allocate a file with LRECL 80 & then I copy it to TAPE, might be due to this when I copy it back to the DASD it takes the optimum BLKSIZE ? |
|
| Back to top |
|
 |
gcicchet
Senior Member
Joined: 28 Jul 2006 Posts: 663
|
|
|
|
Hi Anuj,
what was the blocksize when written to tape ?
Gerry |
|
| Back to top |
|
 |
|
|
|