Re: Is True Skip-Sequential Processing Possible with RECFM=FB,DSORG=PS?

2023-11-11 Thread Seymour J Metz
I'm not sure what ISPF does as far as indexing sequence numbers.

For other applications, the devil is in the detail. There are various cases 
where the initialization to determine or store TTRs is noise compared to read 
time. I had one application where the data changed twice a year. Storing TTRs 
in the records twice a year is a negligible amount of time. BDAM or ISAM would 
have been overkill.


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




From: IBM Mainframe Assembler List  on behalf 
of Paul Gilmartin <0014e0e4a59b-dmarc-requ...@listserv.uga.edu>
Sent: Saturday, November 11, 2023 9:36 PM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Is True Skip-Sequential Processing Possible with RECFM=FB,DSORG=PS?

On Sun, 12 Nov 2023 02:24:50 +, Seymour J Metz wrote:

>It doesn't have to be FBS if you know the location of the block.
>
Doesn't ISPF BROWSE do  something of that sort, creating an
index for rapid positioning to a requested record?  But it must
(except for FBS?) read once to build the index.


On Sun, 12 Nov 2023 02:21:26 +, Seymour J Metz wrote:

>Are you a betting man?
>
what's your proposition?

--
gil


Re: Is True Skip-Sequential Processing Possible with RECFM=FB,DSORG=PS?

2023-11-11 Thread Paul Gilmartin
On Sun, 12 Nov 2023 02:24:50 +, Seymour J Metz wrote:

>It doesn't have to be FBS if you know the location of the block.
>
Doesn't ISPF BROWSE do  something of that sort, creating an
index for rapid positioning to a requested record?  But it must
(except for FBS?) read once to build the index.


On Sun, 12 Nov 2023 02:21:26 +, Seymour J Metz wrote:

>Are you a betting man? 
>
what's your proposition?

-- 
gil


Re: Is True Skip-Sequential Processing Possible with RECFM=FB,DSORG=PS?

2023-11-11 Thread Seymour J Metz
It is possible to do skip sequential reading of physical records. Itt is not 
possible to skip logical records.

There are two cases where it is possible; RECFM=FBS and you know the physical 
record number; you know the TTR of  the physical record.

It's actually possible to do it in QSAM but this margin is too small to hold 
the proof. Don't do it at home.

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




From: IBM Mainframe Assembler List  on behalf 
of David S. 
Sent: Saturday, November 11, 2023 8:59 AM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Is True Skip-Sequential Processing Possible with RECFM=FB,DSORG=PS?

To help resolve a question posted to a LinkedIn group I manage:
http://www.linkedin.com/feed/update/urn:li:groupPost:910927-7128598004344786944
... I'd like to find out if there's any way to achieve *true*
Skip-Sequential processing with a Fixed Block Sequential File with a fairly
short record length (i.e. DCB=(DSORG=PS,RECFM=FB,LRECL=80)?
For example: Begin sequential processing at record number 100, *without*
having to read the first 99 records.
Note: We already know certain VSAM formats can do this, but the file in
question is a DSORG=PS *Sequential* file, *not* VSAM. This is a rock-solid
requirement and cannot be changed. We also already know how certain
utilities such as SORT and REXX can *mimic* skip-sequential functionality
by *discarding* unwanted records until the specified record number is
reached. This is a likewise rock-solid requirement. Sequential processing
*must* begin at specified starting point and there can be *no* reading of
any records prior to that point.
My gut feeling is it *cannot* be done - at least not with RECFM=FB.  It
*might* be possible with RECFM=F, but efficiency would then be so
compromised it would  probably outweigh any advantage from *true*
skip-sequential processing.


Re: Is True Skip-Sequential Processing Possible with RECFM=FB,DSORG=PS?

2023-11-11 Thread Seymour J Metz
It doesn't have to be FBS if you know the location of the block.


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




From: IBM Mainframe Assembler List  on behalf 
of Binyamin Dissen 
Sent: Saturday, November 11, 2023 12:30 PM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Is True Skip-Sequential Processing Possible with RECFM=FB,DSORG=PS?

On Sat, 11 Nov 2023 10:07:14 -0500 Steve Smith  wrote:

:>Sure it's possible... BSAM POINT should work fine in general, and BDAM is
:>even more powerful.  However, the previous mention about short blocks is
:>important; that will foul up block calculations, so you'd probably want to
:>make it FBS, and make sure there are no short blocks.  Presuming your
:>application knows what record it wants to start with, you'll have to
:>calculate the TTR and block offset from that.  And of course, by using
:>BxAM, you have to do your own de-blocking, and I/O overlap.

Yes, it would have to be FBS. The block address can be calculated and a BDAM
direct read could retrieve the block.

However this is the wrong organization for the file if that is your need. No
matter how hard you try, a hammer is a poor tool to put in a screw.

--
Binyamin Dissen 
http://secure-web.cisco.com/1CMWALOVNRtco6uxkLaJ4W4d5JF61Tll8r5RfxJTQEZbMc0O-lpe5e2A9DOpYv_4hXIlCPyote0JZQD3L9oZN1dUI02GMKQfcMamv_R7boNUpJcPEbzJCuxHWwQj9VAntNbivcZmnBEFIdzDCcp3GfRdeHQs4VKQSUy3UsJgz0zW9gdmFFDkdPCZqn-ntK8RfwbqundRpx5zebeWyLnrh67VcdU9y660GP4yTEljwk-alYcIjV3v03Eq7M35DRpt-goBbGfYmo4XPV-GXq3jrJJfxBA8trlWOope9h1kSN7LexAcYipOwfEXsfMCHlVHs37vJfEm28-8Ykhne0naHKVcKNVZv_dlzUf3pkRCxSsAIVwsy-B_VXOsz_JfMhvC3Z2PwK9trVQ0vFaqrcoF79TnshPF20V0YMWfPH89tAJU/http%3A%2F%2Fwww.dissensoftware.com

Director, Dissen Software, Bar & Grill - Israel



Re: Is True Skip-Sequential Processing Possible with RECFM=FB,DSORGIt's tape that doesn't work that way.=PS?

2023-11-11 Thread Seymour J Metz
Are you a betting man? 


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




From: IBM Mainframe Assembler List  on behalf 
of Paul Gilmartin <0014e0e4a59b-dmarc-requ...@listserv.uga.edu>
Sent: Saturday, November 11, 2023 3:05 PM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Is True Skip-Sequential Processing Possible with RECFM=FB,DSORG=PS?

On Sat, 11 Nov 2023 08:59:07 -0500, David S. wrote:
>...
. Sequential processing
>*must* begin at specified starting point and there can be *no* reading of
>any records prior to that point.
>
That sounds absurd.  So if a block contains 10 records, you want to
be able to read the last 5 with "*no* reading of" the first 5!?
DASD don't work that way.

>My gut feeling is it *cannot* be done - at least not with RECFM=FB.  It
>*might* be possible with RECFM=F, but efficiency would then be so
>compromised it would  probably outweigh any advantage from *true*
>skip-sequential processing.

How about UNIX files with RECFM=FB,FILEDATA=BINARY and using
seek()?  (But that still reads entire blocks into a buffer.)

--
gil


Re: Is True Skip-Sequential Processing Possible with RECFM=FB,DSORG=PS?

2023-11-11 Thread Seymour J Metz
The word record is ambiguous. With BSAM you can point to and read a single 
physical record, but it may contain multiple logical records.

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




From: IBM Mainframe Assembler List  on behalf 
of dave.g4...@gmail.com 
Sent: Saturday, November 11, 2023 6:48 PM
To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Subject: Re: Is True Skip-Sequential Processing Possible with RECFM=FB,DSORG=PS?

> -Original Message-
> From: IBM Mainframe Assembler List 
> On Behalf Of David S.
> Sent: Saturday, November 11, 2023 1:59 PM
> To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
> Subject: Is True Skip-Sequential Processing Possible with RECFM=FB,DSORG=PS?
>
> To help resolve a question posted to a LinkedIn group I manage:
> http://www.linkedin.com/feed/update/urn:li:groupPost:910927-
> 7128598004344786944
> ... I'd like to find out if there's any way to achieve *true* Skip-Sequential
> processing with a Fixed Block Sequential File with a fairly short record 
> length (i.e.
> DCB=(DSORG=PS,RECFM=FB,LRECL=80)?

You don't say what the block size is. You don't say what the access methos is 
QSAM/BSAM

> For example: Begin sequential processing at record number 100, *without*
> having to read the first 99 records.

Probably not. The data transfer is driven/implemented by a "channel program" 
and from what I remember a channel program can only read "blocks" from a disk, 
not parts of a block. So if the block size is 8000 bytes each read reads 100 80 
byte records. The POINT  MACRO does allow positioning.

However this is a more complex question. Whilst with an "OS" type operating 
system allows an arbitrary physical record size to be defined for a dataset, on 
any current disk type, this is achieved by mapping this onto fixed size blocks 
which are what is actually written to the disk. So reading an 8k block will 
generally involve reading multiple blocks from the disk media

> Note: We already know certain VSAM formats can do this, but the file in
> question is a DSORG=PS *Sequential* file, *not* VSAM.

Well again VSAM only reads BLOCKS so if we are talking large block sizes, you 
can only position to the block containing the record you want.

> This is a rock-solid
> requirement and cannot be changed. We also already know how certain utilities
> such as SORT and REXX can *mimic* skip-sequential functionality by
> *discarding* unwanted records until the specified record number is reached.
> This is a likewise rock-solid requirement. Sequential processing
> *must* begin at specified starting point and there can be *no* reading of any
> records prior to that point.

> My gut feeling is it *cannot* be done - at least not with RECFM=FB.  It
> *might* be possible with RECFM=F, but efficiency would then be so
> compromised it would  probably outweigh any advantage from *true* skip-
> sequential processing.

Like I say POINT can do this but you are then limited to BSAM...
... YOU DIDN'T SAY QSAM ONLY NOT VSAM

Dave


Re: Is True Skip-Sequential Processing Possible with RECFM=FB,DSORG=PS?

2023-11-11 Thread dave . g4ugm
> -Original Message-
> From: IBM Mainframe Assembler List 
> On Behalf Of David S.
> Sent: Saturday, November 11, 2023 1:59 PM
> To: ASSEMBLER-LIST@LISTSERV.UGA.EDU
> Subject: Is True Skip-Sequential Processing Possible with RECFM=FB,DSORG=PS?
> 
> To help resolve a question posted to a LinkedIn group I manage:
> www.linkedin.com/feed/update/urn:li:groupPost:910927-
> 7128598004344786944
> ... I'd like to find out if there's any way to achieve *true* Skip-Sequential
> processing with a Fixed Block Sequential File with a fairly short record 
> length (i.e.
> DCB=(DSORG=PS,RECFM=FB,LRECL=80)?

You don't say what the block size is. You don't say what the access methos is 
QSAM/BSAM 

> For example: Begin sequential processing at record number 100, *without*
> having to read the first 99 records.

Probably not. The data transfer is driven/implemented by a "channel program" 
and from what I remember a channel program can only read "blocks" from a disk, 
not parts of a block. So if the block size is 8000 bytes each read reads 100 80 
byte records. The POINT  MACRO does allow positioning.

However this is a more complex question. Whilst with an "OS" type operating 
system allows an arbitrary physical record size to be defined for a dataset, on 
any current disk type, this is achieved by mapping this onto fixed size blocks 
which are what is actually written to the disk. So reading an 8k block will 
generally involve reading multiple blocks from the disk media 

> Note: We already know certain VSAM formats can do this, but the file in
> question is a DSORG=PS *Sequential* file, *not* VSAM. 

Well again VSAM only reads BLOCKS so if we are talking large block sizes, you 
can only position to the block containing the record you want.

> This is a rock-solid
> requirement and cannot be changed. We also already know how certain utilities
> such as SORT and REXX can *mimic* skip-sequential functionality by
> *discarding* unwanted records until the specified record number is reached.
> This is a likewise rock-solid requirement. Sequential processing
> *must* begin at specified starting point and there can be *no* reading of any
> records prior to that point.

> My gut feeling is it *cannot* be done - at least not with RECFM=FB.  It
> *might* be possible with RECFM=F, but efficiency would then be so
> compromised it would  probably outweigh any advantage from *true* skip-
> sequential processing.

Like I say POINT can do this but you are then limited to BSAM...
... YOU DIDN'T SAY QSAM ONLY NOT VSAM

Dave


Re: Is True Skip-Sequential Processing Possible with RECFM=FB,DSORG=PS?

2023-11-11 Thread Steve Smith
I suspect that a dive into the Unix side is not what he wants to do.  But
it's an interesting idea.

My suggestion was primarily for BSAM with POINT.  That seems to meet the
OP's needs.  The BDAM mention was an aside, and would be overkill.

Although I might say BDAM deserves more respect than it gets from IBM.
Nevertheless, I don't think it would be smart to start developing anything
based on it.  There are easier and better modern alternatives, such as
RRDS, ESDS, LDS, Unix files... I spent a few years working with BDAM
programs & files that would have naturally fit LDS.  But, LDS hadn't been
invented yet, so we made do.

sas


On Sat, Nov 11, 2023 at 5:19 PM Paul Gilmartin <
0014e0e4a59b-dmarc-requ...@listserv.uga.edu> wrote:

> On 11/11/23 06:59:07, David S. wrote:
> > To help resolve a question posted to a LinkedIn group I manage:
> > www.linkedin.com/feed/update/urn:li:groupPost:910927-7128598004344786944
> > ... I'd like to find out if there's any way to achieve *true*
> > Skip-Sequential processing with a Fixed Block Sequential File with a
> fairly
> > short record length (i.e. DCB=(DSORG=PS,RECFM=FB,LRECL=80)?
> > For example: Begin sequential processing at record number 100, *without*
> > having to read the first 99 records.
> >
> >
> This feels like a job for DSFS.
>  >
>
> UNIX readily solves the problem with seek() and DSFS is supposed
> to mimic a UNIX file with the content of a Classic data set.
>
> Where's the User's Guide for DSFS?
>
> Is the skip count fixed, or is it dynamic, varying up or down
> with successive executions of your program?
>
> --
> gil
>


Re: Is True Skip-Sequential Processing Possible with RECFM=FB,DSORG=PS?

2023-11-11 Thread Paul Gilmartin

On 11/11/23 06:59:07, David S. wrote:

To help resolve a question posted to a LinkedIn group I manage:
www.linkedin.com/feed/update/urn:li:groupPost:910927-7128598004344786944
... I'd like to find out if there's any way to achieve *true*
Skip-Sequential processing with a Fixed Block Sequential File with a fairly
short record length (i.e. DCB=(DSORG=PS,RECFM=FB,LRECL=80)?
For example: Begin sequential processing at record number 100, *without*
having to read the first 99 records.



This feels like a job for DSFS.


UNIX readily solves the problem with seek() and DSFS is supposed
to mimic a UNIX file with the content of a Classic data set.

Where's the User's Guide for DSFS?

Is the skip count fixed, or is it dynamic, varying up or down
with successive executions of your program?

--
gil


Re: Is True Skip-Sequential Processing Possible with RECFM=FB,DSORG=PS?

2023-11-11 Thread Bob Raicer

I agree with Paul regarding the absurdity he mentioned.

Here's another scheme you might want to consider.

Let's call the set of logical records currently at the beginning of
the data set the Restricted Access Set.  Presumably, the remaining
records comprise the Unrestricted Access Set.

You could create two files:
File One contains the Restricted Access Set records.
File Two contains the Unrestricted Access Set records.

All file I/O can be done with QSAM without needing to perform any
type of record location calculations and the corresponding
positioning operations.  You can make the Block Size anything that
makes you happy; let Data Management do all of the blocking and
unblocking and deal with all of the device idiosyncrasies.  The two
files could even reside on very different types of devices and
possibly different file systems.

Both sets could be read as a logical single entity by concatenating
the two files.  The Unrestricted Set could be read (and written if
so desired) by simply OPENing that file.  The same thing goes for
the Restricted Set.  The concatenation could be done in JCL and/or
Dynamic Allocation.

If you do not intend to Extend either set, the two files could be
members of a PDS, and you can access the members using QSAM.

If you DO intend to extend either set (where the containing file is
a PDS), then DISP=MOD (or OPEN EXTEND) against a PDS member is
disallowed by Data Management.  In this case you would need to
create a "new" member by copying the "old" member data to the "new"
member, and then (without having CLOSEd the "new" member) add the
new logical records.  After CLOSEing the "new" member you would need
to delete the "old" member and rename the "new" member, giving it
the "old" member name.  In this kind of scenario a PDSE would be
better since it never needs to be compressed.

Clearly, the two separate files approach is the simplest.

Bob


Re: Is True Skip-Sequential Processing Possible with RECFM=FB,DSORG=PS?

2023-11-11 Thread Paul Gilmartin

On Sat, 11 Nov 2023 08:59:07 -0500, David S. wrote:

   ...

. Sequential processing

*must* begin at specified starting point and there can be *no* reading of
any records prior to that point.


That sounds absurd.  So if a block contains 10 records, you want to
be able to read the last 5 with "*no* reading of" the first 5!?
DASD don't work that way.


My gut feeling is it *cannot* be done - at least not with RECFM=FB.  It
*might* be possible with RECFM=F, but efficiency would then be so
compromised it would  probably outweigh any advantage from *true*
skip-sequential processing.


How about UNIX files with RECFM=FB,FILEDATA=BINARY and using
seek()?  (But that still reads entire blocks into a buffer.)

--
gil


Re: Is True Skip-Sequential Processing Possible with RECFM=FB,DSORG=PS?

2023-11-11 Thread Bob Raicer

More than a decade ago when I was working as a developer on the
implementation and support of Extended Address Volumes, the plan
of record was to "functionally stabilize" BDAM.  At that time there
was zero work planned or being done on BDAM for EAV support.  To be
honest, I haven't paid any attention to BDAM since, so I cannot say
for certain what BDAM improvements may have occurred.  That said, I
would avoid using BDAM unless you have absolutely no other choice.

As others have advised, you can likely achieve your goal using BSAM,
subject to the constraints and caveats they've stated.

I agree with the sentiment stated by Binyamin Dissen:

"However this is the wrong organization for the file if that is your
need.  No matter how hard you try, a hammer is a poor tool to put in
a screw."

Bob


Re: Is True Skip-Sequential Processing Possible with RECFM=FB,DSORG=PS?

2023-11-11 Thread Binyamin Dissen
On Sat, 11 Nov 2023 10:07:14 -0500 Steve Smith  wrote:

:>Sure it's possible... BSAM POINT should work fine in general, and BDAM is
:>even more powerful.  However, the previous mention about short blocks is
:>important; that will foul up block calculations, so you'd probably want to
:>make it FBS, and make sure there are no short blocks.  Presuming your
:>application knows what record it wants to start with, you'll have to
:>calculate the TTR and block offset from that.  And of course, by using
:>BxAM, you have to do your own de-blocking, and I/O overlap.

Yes, it would have to be FBS. The block address can be calculated and a BDAM
direct read could retrieve the block.

However this is the wrong organization for the file if that is your need. No
matter how hard you try, a hammer is a poor tool to put in a screw.

--
Binyamin Dissen 
http://www.dissensoftware.com

Director, Dissen Software, Bar & Grill - Israel


Re: Is True Skip-Sequential Processing Possible with RECFM=FB,DSORG=PS?

2023-11-11 Thread Mike Shaw
We do this with DSORG=PS and RECFM=F now.

 We load the file with QSAM and keep track of RBNs as we go. At EOF we
rewrite index blocks to predetermined locations in the file with EXCP, then
at READ time we use EXCP to read blocks and convert RBNs to CCHHRs based on
the device geometry as we go.

Mike Shaw
MVS/QuickRef Support Group
Chicago-Soft, Ltd

On Sat, Nov 11, 2023, 8:58 AM David S.  wrote:

> To help resolve a question posted to a LinkedIn group I manage:
> www.linkedin.com/feed/update/urn:li:groupPost:910927-7128598004344786944
> ... I'd like to find out if there's any way to achieve *true*
> Skip-Sequential processing with a Fixed Block Sequential File with a fairly
> short record length (i.e. DCB=(DSORG=PS,RECFM=FB,LRECL=80)?
> For example: Begin sequential processing at record number 100, *without*
> having to read the first 99 records.
> Note: We already know certain VSAM formats can do this, but the file in
> question is a DSORG=PS *Sequential* file, *not* VSAM. This is a rock-solid
> requirement and cannot be changed. We also already know how certain
> utilities such as SORT and REXX can *mimic* skip-sequential functionality
> by *discarding* unwanted records until the specified record number is
> reached. This is a likewise rock-solid requirement. Sequential processing
> *must* begin at specified starting point and there can be *no* reading of
> any records prior to that point.
> My gut feeling is it *cannot* be done - at least not with RECFM=FB.  It
> *might* be possible with RECFM=F, but efficiency would then be so
> compromised it would  probably outweigh any advantage from *true*
> skip-sequential processing.
>


Re: Is True Skip-Sequential Processing Possible with RECFM=FB,DSORG=PS?

2023-11-11 Thread Steve Smith
Sure it's possible... BSAM POINT should work fine in general, and BDAM is
even more powerful.  However, the previous mention about short blocks is
important; that will foul up block calculations, so you'd probably want to
make it FBS, and make sure there are no short blocks.  Presuming your
application knows what record it wants to start with, you'll have to
calculate the TTR and block offset from that.  And of course, by using
BxAM, you have to do your own de-blocking, and I/O overlap.

sas


Re: Is True Skip-Sequential Processing Possible with RECFM=FB,DSORG=PS?

2023-11-11 Thread Martin Trübner

David,


it can be done. It doe not matter if you have FB or F- all you have to 
know is the geometry of the device it is stored on (or the device it is 
does mimic).



If have created a program to do just that (on VSE platform). All it does 
is it sets the seeks address for the next record to read to whatever the 
calculation says it is for a certain record.



saved a hell of a lot of processing/elapsed time. Shall I go and look 
for it  (it is somewhere on the PC here).



Best


Martin


PS: I have red the thread on lnkedt - and I am starting to look just now.

Am 11.11.23 um 14:59 schrieb David S.:


To help resolve a question posted to a LinkedIn group I manage:
www.linkedin.com/feed/update/urn:li:groupPost:910927-7128598004344786944
... I'd like to find out if there's any way to achieve *true*
Skip-Sequential processing with a Fixed Block Sequential File with a fairly
short record length (i.e. DCB=(DSORG=PS,RECFM=FB,LRECL=80)?
For example: Begin sequential processing at record number 100, *without*
having to read the first 99 records.
Note: We already know certain VSAM formats can do this, but the file in
question is a DSORG=PS *Sequential* file, *not* VSAM. This is a rock-solid
requirement and cannot be changed. We also already know how certain
utilities such as SORT and REXX can *mimic* skip-sequential functionality
by *discarding* unwanted records until the specified record number is
reached. This is a likewise rock-solid requirement. Sequential processing
*must* begin at specified starting point and there can be *no* reading of
any records prior to that point.
My gut feeling is it *cannot* be done - at least not with RECFM=FB.  It
*might* be possible with RECFM=F, but efficiency would then be so
compromised it would  probably outweigh any advantage from *true*
skip-sequential processing.


SV: Is True Skip-Sequential Processing Possible with RECFM=FB,DSORG=PS?

2023-11-11 Thread Willy Jensen
I'd say no, how would you cater for short blocks?

-Oprindelig meddelelse-
Fra: IBM Mainframe Assembler List  På vegne af 
David S.
Sendt: 11. november 2023 14:59
Til: ASSEMBLER-LIST@LISTSERV.UGA.EDU
Emne: Is True Skip-Sequential Processing Possible with RECFM=FB,DSORG=PS?

To help resolve a question posted to a LinkedIn group I manage:
http://www.linkedin.com/feed/update/urn:li:groupPost:910927-7128598004344786944
... I'd like to find out if there's any way to achieve *true* Skip-Sequential 
processing with a Fixed Block Sequential File with a fairly short record length 
(i.e. DCB=(DSORG=PS,RECFM=FB,LRECL=80)?
For example: Begin sequential processing at record number 100, *without* having 
to read the first 99 records.
Note: We already know certain VSAM formats can do this, but the file in 
question is a DSORG=PS *Sequential* file, *not* VSAM. This is a rock-solid 
requirement and cannot be changed. We also already know how certain utilities 
such as SORT and REXX can *mimic* skip-sequential functionality by *discarding* 
unwanted records until the specified record number is reached. This is a 
likewise rock-solid requirement. Sequential processing
*must* begin at specified starting point and there can be *no* reading of any 
records prior to that point.
My gut feeling is it *cannot* be done - at least not with RECFM=FB.  It
*might* be possible with RECFM=F, but efficiency would then be so compromised 
it would  probably outweigh any advantage from *true* skip-sequential 
processing.


Is True Skip-Sequential Processing Possible with RECFM=FB,DSORG=PS?

2023-11-11 Thread David S.
To help resolve a question posted to a LinkedIn group I manage:
www.linkedin.com/feed/update/urn:li:groupPost:910927-7128598004344786944
... I'd like to find out if there's any way to achieve *true*
Skip-Sequential processing with a Fixed Block Sequential File with a fairly
short record length (i.e. DCB=(DSORG=PS,RECFM=FB,LRECL=80)?
For example: Begin sequential processing at record number 100, *without*
having to read the first 99 records.
Note: We already know certain VSAM formats can do this, but the file in
question is a DSORG=PS *Sequential* file, *not* VSAM. This is a rock-solid
requirement and cannot be changed. We also already know how certain
utilities such as SORT and REXX can *mimic* skip-sequential functionality
by *discarding* unwanted records until the specified record number is
reached. This is a likewise rock-solid requirement. Sequential processing
*must* begin at specified starting point and there can be *no* reading of
any records prior to that point.
My gut feeling is it *cannot* be done - at least not with RECFM=FB.  It
*might* be possible with RECFM=F, but efficiency would then be so
compromised it would  probably outweigh any advantage from *true*
skip-sequential processing.