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. <[email protected]> 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. >
