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:
toggle quoted message
Show quoted text
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
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