>Is uniform lengths a requirement? 

On output, the blocks are all written with the same blocksize except possibly 
the last.  This causes the reading in of such a file with constant block size 
expectations to be possible. 

On input, a short block that is not the last block causes an I/O error because 
of the previous sentence. 



>Do any applications rely on being able to calculate a cylinder and track 
>address within a VBS data set? 

None that I have ever seen or heard about, but I have not yet seen all 
applications.  A calculation might be able to get you to some point at or 
before the needed block, but I doubt in general that you could always calculate 
the exact block number, hence the exact cylinder and track numbers. 


>Is any error reported if an interior block is short? 

Yes.  See above. 

  

>Does this mean one can't append (MOD) to a VBS data set? 

Don't know. 

  

>What happens if after writing the last segment of a logical record the block 
>is not filled up to BLKSIZE but fewer bytes are available than the length of a 
>SDW? 

This sounds like an illogical/impossible scenario.  There should always be 
enough bytes left on the track to write a completely fully block, as 
spanned=standard= a fixed block size = a fixed, constant, calculatable number 
of blocks on every track.  If there is enough room on the end of a track for 
one more block and it happens to be the last block needed to write the last 
segment of a logical record, then there is obviously enough room in that last 
block to write the full blocksize, meaning your hypothetical question of fewer 
than SDW bytes' being available is not applicable .  If after writing the last 
full block on a track there is  at least one more byte of the last segment that 
needs to be written, it will be written on the  next track even if there is 
still room on the current track for this very short block.  If it were written 
on the same track, then that would mean that were one too many blocks on that 
track, and reading that track back in would cause the last short block to be 
missed, as enough read commands or read operations would only be built in the 
channel program to read the predicted number of blocks on that track before 
switching to the next track. 



>I suppose using null segments might relax some of these constraints. 

I don't know. 

  

>By "the way it is implemented" are you referring to the behavior of QSAM? 

Yes, specifically the behavior of QSAM output for VBS files.  Every block will 
have the same blocksize, the first four bytes of which will be a BDW, then the 
first record's RDW, etc., and the last record contained in the block may be a 
partial record or a full record.  I meant that the result of writing a VBS file 
will be that all blocks have the same length except possibly for the last.  
This is forced by the logic of QSAM output of a VBS file. 

Bill Fairchild 
Franklin, TN 


----- Original Message -----
From: "Paul Gilmartin" <paulgboul...@aim.com> 
To: IBM-MAIN@LISTSERV.UA.EDU 
Sent: Monday, June 10, 2013 4:02:59 PM 
Subject: Re: I/O Optimization 

On Mon, 10 Jun 2013 17:43:58 +0000, DASDBILL2 wrote: 
> 
>Spanned means that a single logical record might span multiple physical 
>blocks, but the way it is implemented results in having all block sizes be the 
>same, except for possibly the last one, which might be short. 
> 
Is uniform lengths a requirement?  Do any applications rely on being 
able to calculate a cylinder and track address within a VBS data set? 
Is any error reported if an interior block is short?  Does this mean 
one can't append (MOD) to a VBS data set?  What happens if after 
writing the last segment of a logical record the block is not filled up 
to BLKSIZE but fewer bytes are available than the length of a SDW? 
I suppose using null segments might relax some of these constraints. 
By "the way it is implemented" are you referring to the behavior of 
QSAM? 

-- gil 

---------------------------------------------------------------------- 
For IBM-MAIN subscribe / signoff / archive access instructions, 
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN 

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to