I found a PDS container walking about my neighbourhood this morning:
Just like the mainframe version, you can put all sorts of stuff in this one.
A mainframe PDS (partitioned data set) is technically a different sort of container, as you can only put DATASETs (mainframe’ze for a file) in them. An example would be if you have two programs (loadmodules in mainframe’ze) both named PEETERJO, then you can create a two PDS datasets, each having a PEETERJO member, say:
From these you could then choose which one you want your JCL script to execute with a STEPLIB statement like:
//A EXEC PGM=PEETERJO //STEPLIB DD DSN=PEETER.JOOT.IS.THE.BEST,DISP=SHR //SYSOUT DD SYSOUT=* //SYSPRINT DD SYSOUT=* //SYSTERM DD SYSOUT=* //SYSABEND DD SYSOUT=*
This works around the global name space issue that you’d have with storing two different datasets, both with the name PEETERJO.
You can also put any file into a PDS, provided you are willing to have the PDS member name for that file be a 1-8 character string. The PDS is sort of the mainframe equivalent of a directory (the long strings of A.B.C.D.E DATASET names can also be viewed as a directory of sorts).
I’m not sure if you can put a PDS in a PDS. If that is possible, I also don’t know if a PDS member can be accessed as a PDS without first copying it out.