PDSE and PDS differences
Table 1 shows the significant differences
between PDSEs and PDSs:
PDSE Characteristics | PDS Characteristics |
---|---|
Data set has a 123-extent limit. | Data set has a 16-extent limit. |
Directory is expandable and indexed by member name; faster to search directory. | Fixed size directory is searched sequentially. |
PDSEs are device independent: records are reblockable and the TTR is simulated as a system key. | For PDSs, TTR addressing and block sizes are device dependent. |
Uses dynamic
space allocation and automatically reclaims space. Using IEBCOPY or DFSMSdss COPY to copy all members of a PDSE creates a larger index than copying members one at a time. Tip: Allocate a PDSE with secondary space to permit the dynamic variation in the size of
the PDSE index.
|
Must use IEBCOPY compress to reclaim space. |
You can create multiple members at the same time. | You can create one member at a time. |
PDSEs contain either program objects or data members but not both. z/OS MVS Program Management: User's Guide and Reference describes the advantage of program objects over load modules. | Whereas PDSs contain data members or load modules but there is no attempt to keep data members and load modules from being created in the same PDS. |
Replacing a member without replacing all of its aliases causes the alias entries to be deleted. | Replacing a member without replacing all of its aliases causes the alias entries to be abandoned. They are "orphans" and eventually might point to the wrong member. |
Alias names for program objects, in a PDSE, can be up to 1024 bytes long. To access these names, you must use the DESERV interfaces. Primary names for program objects are restricted to 8 bytes. | All names for PDS members must be 8 bytes long. |
Support generations for members, with version 2 PDSEs. | Do not support generations for members. |
An S002-89 abend occurs when attempting to read a member of a PDSE that is RACF EXECUTE protected. This is not allowed even if the user is in supervisor state. | An S016-08 abend occurs when attempting to read a member of a PDS that is RACF EXECUTE protected but the user is not in supervisor state. |
The "fast data access" function of the program management binder should be used to read a program object from a PDSE. This will convert the program object to a documented format. | BPAM, BSAM, or QSAM may be used to read a load module from a PDS. |