Joseph, It's complicated.
For a non-VSAM data set, when it resides on only one volume, you can read the VTOC for the volume, find the F1 DSCB for the data set in question (or the F8 DSCB if the DASD volume is an EAV), then add up the number of tracks that comprise each extent the data set is allocated on. The F1 or F8 DSCB also tells you the blocksize and RECFM used for the data set. Using blocksize and number of extents you can compute the number of bytes the data set occupies. The above is simplified, and does not work for VSAM. If the data set spans multiple DASD volumes, you have to do the above for each volume. You can read the VTOC without being APF authorized. If you don't want to read it directly yourself (with EXCP or BSAM), you can use IBM's CVAF macros (described here <https://www.ibm.com/docs/en/SSLTBW_3.2.0/pdf/idas300_v3r2.pdf>) to get the DSCB for a particular data set. Mike Shaw MVS/QuickRef Support Group Chicago-Soft, Ltd. On Mon, Jun 29, 2026 at 9:27 PM Joseph Reichman < [email protected]> wrote: > Thanks I begging to have a better understanding > > I’m really trying figure out how many bytes in a dataset > > So by looking at dcbblksi its 32000 its a variable blocked. Record > If the dataset got a b37 then all the space is used > > Up is there a programitclly way of determine the size of the dataset ? > > Thanks > > Get Outlook for iOS<https://aka.ms/o0ukef> > ________________________________ > From: IBM Mainframe Discussion List <[email protected]> on behalf > of Michael Watkins <[email protected]> > Sent: Monday, 29 June 2026 21:19:54 > To: [email protected] <[email protected]> > Subject: Re: Net bytes per track > > Yes, 56664 bytes per track on a 3390, but the maximum z/OS BLKSIZE is > 32,760 bytes and only one block will fit on a track. > > To maximize the amount of data on a track, half-track blocking is > typically used. There is a 668-byte inter-record gap on a native 3390 > (platters on a spindle), which has been replicated on RAIDed FBA devices in > modern DASD architecture. This means there is a maximum half-track BLKSIZE > of 27998 bytes since 668+(2x27998)=56664. > > For a data set with 80-byte records, this means half-track blocking means > a 27920-byte BLKSIZE since 349 x 80 = 27920 and there isn't room in 27998 > for the 350th 80-byte record. > > Also keep in mind that z/OS will append 32 bytes onto each block when > DSNTYPE=EXTENDED is specified, meaning less space for data records is > available. > > > > -----Original Message----- > From: IBM Mainframe Discussion List <[email protected]> On Behalf > Of Joseph Reichman > Sent: Monday, June 29, 2026 8:01 PM > To: [email protected] > Subject: Re: Net bytes per track > > CAUTION: This email originated from outside of the Texas Comptroller's > email system. > DO NOT click links or open attachments unless you expect them from the > sender and know the content is safe. > > I keep on seeing from AI 56,664 bytes per tack for 3390 pack how is that > determined > > > Joe Reichman > > On Mon, Jun 29, 2026 at 8:58 PM Attila Fogarasi < > [email protected]> wrote: > > > The net bytes (i.e. longest record you can write to that track) varies > > by access method as there is overhead (control bytes). TRKCALC is > > provided to compute the largest record which can fit on a track (using > > EXCP), see > > > > https://urldefense.com/v3/__https://www.ibm.com/docs/en/zos/3.2.0?topi > > c=instructions-performing-track-calculations-trkcalc-macro__;!!JJZmGcL > > PLA!f8gIQp2WmnK5aJpNmmtG4m8kLdObQsseimGBKGffYscn-nyU3MS1l3Ja7JSZEZ7c6P > > NPHimcV6MZ8a9Bu7MdeT39NLAkG2Cp0zXCYmzdsY2g$ > > > > Unless you are using EXCP the hardware track capacity is irrelevant, > > the access method used will determine the actual bytes per track (and > > varies by BLKSIZE). > > > > On Tue, Jun 30, 2026 at 10:35 AM Joseph Reichman < > > [email protected]> wrote: > > > > > Would anyone know how to get the net bytes per track for a 3390 > > > > > > I have been using devtype ddname,buffer,devtab > > > > > > > > > Where buffer is a 32 byte output field > > > > > > But it keeps on coming back with the overhead of 58,864 > > > > > > I think the net is 56,664 > > > > > > I would like to get that figure programmatically instead of hard > > > coding > > it > > > > > > Thanks > > > > > > -------------------------------------------------------------------- > > > -- For IBM-MAIN subscribe / signoff / archive access instructions, > > > send email to [email protected] with the message: INFO > > > IBM-MAIN > > > > > > > ---------------------------------------------------------------------- > > For IBM-MAIN subscribe / signoff / archive access instructions, send > > email to [email protected] with the message: INFO IBM-MAIN > > > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, send email > to [email protected] with the message: INFO IBM-MAIN > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to [email protected] with the message: INFO IBM-MAIN > > ---------------------------------------------------------------------- > For IBM-MAIN subscribe / signoff / archive access instructions, > send email to [email protected] with the message: INFO IBM-MAIN > ---------------------------------------------------------------------- For IBM-MAIN subscribe / signoff / archive access instructions, send email to [email protected] with the message: INFO IBM-MAIN
