I believe that the OP wanted a solution for BSAM. If VSAM is an option then 
it's a nobrainer.

Does anybody know whether CI size = block size for PDSE and zFS (linear) data 
sets? VSAM used to use multiple blocks for a CI.



-- 
Shmuel (Seymour J.) Metz
http://mason.gmu.edu/~smetz3
עַם יִשְׂרָאֵל חַי



________________________________________
From: IBM Mainframe Assembler List <[email protected]> on behalf 
of Jon Perryman <[email protected]>
Sent: Sunday, November 12, 2023 8:27 PM
To: [email protected]
Subject: Re: Is True Skip-Sequential Processing Possible with RECFM=FB,DSORG=PS?

On Sun, 12 Nov 2023 17:14:49 -0700, Paul Gilmartin <[email protected]> wrote:

>RECFM=FBS prevents that.

That is certainly a partial solution but the correct solution is VSAM RRDS or 
ESDS which eliminates the special handling.

>That's mostly how the Divide instruction works.

Division is not the hard part. Implementation is what's being discussed which 
involves division..

>... Fill the block with additional records and rewrite in place.

What ever floats your boat. If the OP wants to fully implement that logic, it's 
available.

>Why, in this 21st Century hasn't that function been added to the
>access methods!?  UNIX does it, as you say below.

What makes you falsely claim that function doesn't exist. There is no 
difference between z/OS and Unix files in this respect. Your programs must deal 
with those extra records by ignoring them. Both must retain a pointer to the 
first available instead of using EOF.

>I think that can be done by the Multiply instruction, provided
>by most modern computer hardware.

Wow, the computers you use can't multiply? I stated "times" which is another 
word for multiply.

> But fixed-length records are
>alien to UNIX -- I think they're a relic of UR-device practice.

RECFM=FB & VB are not relics. It's a vital concept used by databases. A max 
length is required by VARCHAR for a reason. They know it's more efficient to 
add a number instead of scanning for X'00'. Databases encourage you to supply 
max length for everything and truly unknown lengths are avoided.  Just because 
a basic concept is not understood by Unix programmers doesn't mean it doesn't 
have great value.

Reply via email to