开云体育

ctrl + shift + ? for shortcuts
© 2025 开云体育

Re: Understanding PDS in MVS 3.8


 

开云体育

Each 256-byte directory block has a 2-byte field which indicates the length within the block of the entries it contains, so only 254 bytes may be used to hold the entries themselves - you should be doing 254 / 12 instead of 256 / 12.

That still gives 21, however.

I'm not an expert on the exact conditions, but entries can vary in length, so I suspect that for some reason your entries are more than 12 bytes long, as 12 bytes is the maximum entry length that will allow 21 entries to fit in one directory block.



On 10/30/24 10:49, Sergio wrote:

Hi :)

I am trying to understand how PDSs are allocated in a 3390.

Facts:

  • TSO001: 3390-1, 56,664 bytes/track
  • PDS directory block: 256 bytes/dirBlock
  • PDS EOF record: unknown

Sequential Data Set

With attributes:

  • Record format: FB
  • LRECL: 80
  • BLKSZ: 27,920
  • Primary space: 1 track
  • Secondary space: 0

My expectations:

  • Blocks per track: 2
    • 56,664 bytes/track / 27,920 bytes/block = 2.0295 blocks/track
  • Logical records per block: 349
    • 27,920 bytes/block / 80 bytes/record = 349 records/block
  • Max. logical records per track: 698
    • 349 records/block * 2 blocks = 698 records

I am able to confirm my expectations with the following card decks (please, find attached):

  • fill-seq-ds-rc0.jcl (Creates a sequential data set with 698 logical records. RC=0)
  • fill-seq-ds-sb37.jcl (Creates a sequential data set with 698 logical records, and ABENDs when inserting the logical record 699. SB37)

Partitioned Data Set

With attributes:

  • Record format: FB
  • LRECL: 80
  • BLKSZ: 27,920
  • Primary space: 1 track
  • Secondary space: 0
  • Directory blocks: 1

Directory Blocks Space

My expectations:

  • 1 dirBlock = 256 bytes
  • Min. dirEntry = 8+3+1=12
  • Max. entries = 21
    • 256 / 12 = 21.333

I am able to get 20 members with the following card decks (please, find attached):

  • fill-pds-dblk-rc0.jcl (Creates a PDS with 20 members, 1 logical record each. RC=0)
  • fill-pds-dblk-sb14.jcl (Creates a PDS with 20 members, and ABENDs when creating the 21st member. SB14)

Why 20 and not 21? What am I missing?

Member Space

My expectations:

  • Space taken by directory blocks: 4 records
    • 256 bytes / 80 bytes/record = 3.2 records
  • Seq. DS max. logical records = 698
  • PDS max. logical records = 694
    • 698 records/track - 4 records = 694 records

I am able to create one member with max. 667 records with the following card decks (please, find attached):

  • fill-pds-1member-rc0.jcl (Creates a PDS with 1 member with 667 records. RC=0)
  • fill-pds-1member-sb37.jcl (Creates a PDS but ABENDs adding the member with 668 records. SB37)

Why 31 records less? What am I missing?

I am only able to create 14 members with 460 records total. 13 members with 34 records and 1 member with 18 records (please, find attached):

  • fill-pds-20members-rc0.jcl (Creates a PDS with 14 members. RC=0)
  • fill-pds-20members-sb37.jcl (Creates a PDS with 13 members, but ABENDs adding the 14th member with 19 records. SB37)

Why 238 records less? What am I missing?

Kind Regards

Join [email protected] to automatically receive all group messages.