Portal | Manuals | References | Downloads | Info | Programs | JCLs | Mainframe wiki | Quick Ref
IBM Mainframe Forum Index
 
Register
 
IBM Mainframe Forum Index Mainframe: Search IBM Mainframe Forum: FAQ Memberlist Profile Log in to check your private messages Log in
 
Blksize question

 
Post new topic   Reply to topic    IBMMAINFRAMES.com Support Forums -> JCL & VSAM
View previous topic :: :: View next topic  
Author Message
darioits

New User


Joined: 10 Sep 2019
Posts: 5
Location: Italy

PostPosted: Tue Sep 10, 2019 8:32 pm    Post subject: Blksize question
Reply with quote

I work from 30 year on mainframe as OPC/JCL/REXX/CLIST scheduling and my problem is recently a lot of file aren't with correctly allocated with proper blksize (blksize are equal to lrecl), but jcl are correctly with blksize=0 and aren't changed (file are FB sequential)

In IBM manual I find this sentence

“Block size (BLKSIZE) specifies the maximum length, in bytes, of a physical block of storage in MVS. If BLKSIZE(0) is specified, the system will determine the optimal block size based on the maximum record length (LRECL) and the physical characteristics of the disk, or approximately half of a physical track. Half track blocking is optimal in that it reduces the amount of wasted storage on the disk” also If BLKSIZE(0) is specified for Direct Access (DA) data sets, the system does not determine the block size

My question is, how can I check if something is changed on mainfame, it's seems central support does not know the topic very well?

Thank you in advance
Back to top
View user's profile Send private message

Rohit Umarjikar

Senior Member


Joined: 21 Sep 2010
Posts: 2300
Location: NY,USA

PostPosted: Tue Sep 10, 2019 8:38 pm    Post subject:
Reply with quote

Advantage of specify BLKSIZE=0 when allocate new dataset
System-Determined Block Size
Back to top
View user's profile Send private message
steve-myers

Active Member


Joined: 30 Nov 2013
Posts: 762
Location: The Universe

PostPosted: Tue Sep 10, 2019 8:53 pm    Post subject:
Reply with quote

BLKSIZE=0 basically allows the system to select what it regards as an "optimal" BLKSIZE. "Optimal" is debatable. "Optimal" appears to be biased in terms of capacity; on 3380 and 3390 (or emulated 3380 or 3390) devices it amounts to two records per track. On 3350 and earlier disk devices it amounts to one record per track. This is governed by the maximum allowable BLKSIZE is 32760.

On 3390 the maximum possible BLKSIZE for two records per track is 27998 bytes (or 55996 bytes per track). Anything larger gets one record per track, so 27999 would get one record per track, so 27997 bytes of possible capacity would not be used.
Back to top
View user's profile Send private message
Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 8500
Location: Dubuque, Iowa, USA

PostPosted: Tue Sep 10, 2019 9:12 pm    Post subject: Reply to: Blksize question
Reply with quote

Quote:
my problem is recently a lot of file aren't with correctly allocated with proper blksize (blksize are equal to lrecl), but jcl are correctly with blksize=0 and aren't changed (file are FB sequential)
This is quite possible -- the PRIMARY source for DCB information (including the block size) is the program. If the program is coded with LRECL and BLKSIZE being the same, then the JCL BLKSIZE=0 value will be ignored. And the system won't arbitrarily change block size on an existing data set.
Back to top
View user's profile Send private message
darioits

New User


Joined: 10 Sep 2019
Posts: 5
Location: Italy

PostPosted: Tue Sep 10, 2019 9:32 pm    Post subject:
Reply with quote

indeed many of these programs are new (migrating from sas to cobol), in which cobol section could programmer check if this clause exists
Back to top
View user's profile Send private message
steve-myers

Active Member


Joined: 30 Nov 2013
Posts: 762
Location: The Universe

PostPosted: Tue Sep 10, 2019 11:09 pm    Post subject: Re: Reply to: Blksize question
Reply with quote

Quote:
my problem is recently a lot of file aren't with correctly allocated with proper blksize (blksize are equal to lrecl), ...
With RECFM = FB, LRECL = BLKSIZE is not necessarily either "correct" or "optimal." Consider the very common LRECL=80. It's plain stupid for BLKSIZE=80! You will get roughly 50 records per track, about 4000 used bytes of a net capacity of more than 50,000 bytes. With RECFM=FB, BLKSIZE must be a multiple of LRECL. For RECFM=FB, LRECL=80, System Determined BLKSIZE will be 27920.
Back to top
View user's profile Send private message
Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 8500
Location: Dubuque, Iowa, USA

PostPosted: Wed Sep 11, 2019 12:04 am    Post subject:
Reply with quote

Quote:
in which cobol section could programmer check if this clause exists
Look in the FILE SECTION at the definition for the file. BLOCK CONTAINS is the specific clause to check in the FILE SECTION.
Back to top
View user's profile Send private message
darioits

New User


Joined: 10 Sep 2019
Posts: 5
Location: Italy

PostPosted: Mon Sep 23, 2019 3:37 pm    Post subject:
Reply with quote

after a lot of test we discover the problem that all this 3 statement in FD must be declared, unless otherwise specified the Blksize is wrong

BLOCK 0 RECORDS
RECORDING MODE IS F
LABEL RECORDS STANDARD.

Maybe there's some default in compiler?

Thank you in advance
Back to top
View user's profile Send private message
Nic Clouston

Global Moderator


Joined: 10 May 2007
Posts: 2247
Location: Hampshire, UK

PostPosted: Mon Sep 23, 2019 4:39 pm    Post subject: Reply to: Blksize question
Reply with quote

Quote:
Maybe there's some default in compiler?

Look in the compiler listing - defaults used are listed there.
Back to top
View user's profile Send private message
darioits

New User


Joined: 10 Sep 2019
Posts: 5
Location: Italy

PostPosted: Mon Sep 23, 2019 5:43 pm    Post subject:
Reply with quote

the only difference in compiling is the wrong blksiza has QSAM=F, the right QSAM=FB
Back to top
View user's profile Send private message
Robert Sample

Global Moderator


Joined: 06 Jun 2008
Posts: 8500
Location: Dubuque, Iowa, USA

PostPosted: Mon Sep 23, 2019 7:05 pm    Post subject:
Reply with quote

As of version 5.1 of Enterprise COBOL, the LABEL RECORDS clause is checked for syntax but otherwise has no impact on the program. If you are running version 5.1 or later of Enterprise COBOL, you don't have to put the LABEL RECORDS clause on an FD.
Back to top
View user's profile Send private message
darioits

New User


Joined: 10 Sep 2019
Posts: 5
Location: Italy

PostPosted: Tue Sep 24, 2019 9:17 pm    Post subject:
Reply with quote

this is a version:
IBM Enterprise COBOL for z/OS 6.1.0
Back to top
View user's profile Send private message
hankoerlemans

New User


Joined: 25 Jan 2018
Posts: 18
Location: Australia

PostPosted: Tue Nov 19, 2019 8:39 am    Post subject:
Reply with quote

BLOCK0 compiler option is probably what you need to explore.
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
Page 1 of 1

 

Search our Forum:

Similar Topics
Topic Author Forum Replies Posted
No new posts CICS Web Services configuration question SickPup404 CICS 25 Mon Nov 04, 2019 9:56 pm
No new posts User question - dbzTHEdinosaur SickPup404 General Talk & Fun Stuff 2 Mon Nov 04, 2019 9:47 pm
No new posts INREC IFTHEN question knobi SYNCSORT 2 Mon Apr 15, 2019 11:55 pm
No new posts Attachmate file transfer question John Poulakos All Other Mainframe Topics 3 Wed Mar 20, 2019 1:45 am
No new posts COBOL Table Question GAPX1 COBOL Programming 3 Thu Mar 07, 2019 9:48 pm

Facebook
Back to Top
 
Job Vacancies | Forum Rules | Bookmarks | Subscriptions | FAQ | Polls | Contact Us