Portal | Manuals | References | Downloads | Info | Programs | JCLs | Master the Mainframes
IBM Mainframe Computers Forums Index
 
Register
 
IBM Mainframe Computers Forums Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Usergroups Profile Log in to check your private messages Log in
 

 

Query:Coding DCB=*.SYSUT1 for SYSUT2,where SYSUT2 is DASD.
Goto page 1, 2  Next
 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> JCL & VSAM
View previous topic :: :: View next topic  
Author Message
Anuj Dhawan

Senior Member


Joined: 22 Apr 2006
Posts: 6258
Location: Mumbai, India

PostPosted: Wed Aug 01, 2007 4:54 pm    Post subject: Query:Coding DCB=*.SYSUT1 for SYSUT2,where SYSUT2 is DASD.
Reply with quote

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
Code:
//            DCB=*.SYSUT1

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
View user's profile Send private message

dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Wed Aug 01, 2007 6:08 pm    Post subject:
Reply with quote

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
View user's profile Send private message
expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8593
Location: Back in jolly old England

PostPosted: Wed Aug 01, 2007 7:20 pm    Post subject:
Reply with quote

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
View user's profile Send private message
Anuj Dhawan

Senior Member


Joined: 22 Apr 2006
Posts: 6258
Location: Mumbai, India

PostPosted: Thu Aug 02, 2007 11:58 am    Post subject:
Reply with quote

Thanks Dick.

Thanks expat, now that's a typical expat explanation icon_smile.gif. 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
View user's profile Send private message
expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8593
Location: Back in jolly old England

PostPosted: Thu Aug 02, 2007 2:54 pm    Post subject:
Reply with quote

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 icon_eek.gif

I am impressed - this means that some of you actually read what I put here icon_biggrin.gif
Back to top
View user's profile Send private message
expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8593
Location: Back in jolly old England

PostPosted: Thu Aug 02, 2007 3:17 pm    Post subject:
Reply with quote

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
View user's profile Send private message
Anuj Dhawan

Senior Member


Joined: 22 Apr 2006
Posts: 6258
Location: Mumbai, India

PostPosted: Thu Aug 02, 2007 3:36 pm    Post subject:
Reply with quote

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 icon_smile.gif

expat wrote:
I am impressed
Thanks for the kind words.

expat wrote:
this means that some of you actually read what I put here icon_biggrin.gif
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. icon_wink.gif

Thanks again for being here.
Back to top
View user's profile Send private message
expat

Global Moderator


Joined: 14 Mar 2007
Posts: 8593
Location: Back in jolly old England

PostPosted: Thu Aug 02, 2007 6:28 pm    Post subject:
Reply with quote

Quote:
..a lot of my queris get solved without any dollor-cheque.


Invoice in the post icon_biggrin.gif
Back to top
View user's profile Send private message
dick scherrer

Site Director


Joined: 23 Nov 2006
Posts: 19270
Location: Inside the Matrix

PostPosted: Thu Aug 02, 2007 7:04 pm    Post subject:
Reply with quote

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. . . icon_wink.gif
Back to top
View user's profile Send private message
Anuj Dhawan

Senior Member


Joined: 22 Apr 2006
Posts: 6258
Location: Mumbai, India

PostPosted: Fri Aug 03, 2007 5:04 pm    Post subject:
Reply with quote

expat wrote:
Invoice in the post icon_biggrin.gif
icon_smile.gif

dick scherrer wrote:
We're just setting you up for a really big bill later. . . icon_wink.gif
Ah..aa.. icon_smile.gif I am ready for big bills if you guys gonna be around till I pay my bills. icon_wink.gif
Back to top
View user's profile Send private message
mmwife

Super Moderator


Joined: 30 May 2003
Posts: 1592

PostPosted: Sun Aug 05, 2007 3:29 am    Post subject:
Reply with quote

Hi Anju,

Give "DCB=*.SYSUT1,BLKSIZE=0" a try, it should o'ride the tape blksize.
Back to top
View user's profile Send private message
Anuj Dhawan

Senior Member


Joined: 22 Apr 2006
Posts: 6258
Location: Mumbai, India

PostPosted: Mon Jul 21, 2008 1:25 pm    Post subject:
Reply with quote

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
Code:
DCB=*.SYSUT1       
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
View user's profile Send private message
gcicchet

Senior Member


Joined: 28 Jul 2006
Posts: 1703
Location: Australia

PostPosted: Tue Jul 22, 2008 12:16 pm    Post subject:
Reply with quote

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
View user's profile Send private message
Anuj Dhawan

Senior Member


Joined: 22 Apr 2006
Posts: 6258
Location: Mumbai, India

PostPosted: Tue Jul 22, 2008 4:39 pm    Post subject:
Reply with quote

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.. icon_smile.gif

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
View user's profile Send private message
gcicchet

Senior Member


Joined: 28 Jul 2006
Posts: 1703
Location: Australia

PostPosted: Tue Jul 22, 2008 4:46 pm    Post subject:
Reply with quote

Hi Anuj,

what was the blocksize when written to tape ?

Gerry
Back to top
View user's profile Send private message
Anuj Dhawan

Senior Member


Joined: 22 Apr 2006
Posts: 6258
Location: Mumbai, India

PostPosted: Tue Jul 22, 2008 4:51 pm    Post subject:
Reply with quote

Hi Gerry,
gcicchet wrote:
what was the blocksize when written to tape ?
It was 27920.
Back to top
View user's profile Send private message
gcicchet

Senior Member


Joined: 28 Jul 2006
Posts: 1703
Location: Australia

PostPosted: Tue Jul 22, 2008 4:55 pm    Post subject:
Reply with quote

Hi Anuj,

I should have been clearer, what is the blocksize on the tape ?


Gerry
Back to top
View user's profile Send private message
Anuj Dhawan

Senior Member


Joined: 22 Apr 2006
Posts: 6258
Location: Mumbai, India

PostPosted: Tue Jul 22, 2008 5:10 pm    Post subject:
Reply with quote

Hi Gerry,
gcicchet wrote:
I should have been clearer, what is the blocksize on the tape ?
You caught me, did you want me to run something like -
Code:
//STEP010  EXEC PGM=SYNCTOOL                 
//TOOLMSG  DD  SYSOUT=*                     
//DFSMSG   DD  SYSOUT=*                     
//DD01     DD  DSN=HLQ.FIRST.FILE.TAPEC,
//             DISP=SHR                     
//TOOLIN   DD  *                             
   COUNT FROM(DD01)                         
/*                                           

where HLQ.FIRST.FILE.TAPEC is my tape file. If so message in DFSMSG is -
Code:
DD01     : RECFM=FB   ; LRECL=    80; BLKSIZE= 27920
Back to top
View user's profile Send private message
gcicchet

Senior Member


Joined: 28 Jul 2006
Posts: 1703
Location: Australia

PostPosted: Tue Jul 22, 2008 5:35 pm    Post subject:
Reply with quote

Hi Anuj,
you need to copy from tape containing a blocksize greater than 27998 to prove whether the optimum blocksize is used when copying to dasd.


Gerry
Back to top
View user's profile Send private message
Anuj Dhawan

Senior Member


Joined: 22 Apr 2006
Posts: 6258
Location: Mumbai, India

PostPosted: Tue Jul 22, 2008 5:41 pm    Post subject: Reply to: Query:Coding DCB=*.SYSUT1 for SYSUT2,where SYSUT2
Reply with quote

Hi Gerry,

I'll give some more tries & get back to you, probably by tomorrow. Thanks for your patience.
Back to top
View user's profile Send private message
View previous topic :: :: View next topic  
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> JCL & VSAM All times are GMT + 6 Hours
Goto page 1, 2  Next
Page 1 of 2

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
This topic is locked: you cannot edit posts or make replies. Db2 SQL query to convert rows into co... subratarec DB2 5 Thu Nov 17, 2016 4:51 pm
No new posts Two Selects in a single select query Rohit Umarjikar DB2 1 Fri Nov 04, 2016 8:46 pm
No new posts Problem in Running Query via JCL vickey_dw DB2 3 Tue Oct 18, 2016 11:11 pm
No new posts SQL Query optimization. arunsoods DB2 12 Sun Sep 04, 2016 6:27 am
No new posts Query on BLSR Nileshkul JCL & VSAM 2 Sat Aug 13, 2016 5:18 am


Facebook
Back to Top
 
Mainframe Wiki | Forum Rules | Bookmarks | Subscriptions | FAQ | Tutorials | Contact Us