开云体育

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

Understanding PDS in MVS 3.8


 

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.