z/OS DFSMS

z/OS DFSMS

z/OS DFSMS

z/OS Data Subsystem that delivers core Data, Data Resiliency and Data Lifecycle Management Solutions for your Enterprise.

 View Only
  • 1.  SUBSYS JCL keyword and SMS datasets

    Posted Wed May 18, 2022 09:20 AM
    Hello,

    We are investigating  how to use the subsystem interface to create a subsystem that will get control for datasets whose JCL statement includes the SUBSYS keyword. 
    For example, we would create a subsystem ABCD and then reference it in a JCL DD statement, such as //MYDD DD SUBSYS=(ABCD,'parms')) .

    We've been able to get a simple prototype working, but we're concerned about this statement in the  z/OS MVS JCL Reference:
      "Do not use the SUBSYS parameter for an SMS-managed data set (one with an assigned storage class)."

    There is no further information on this restriction.  Does anyone know why this restriction exists?  Is is true in all cases, or are there some cases or functions for which this is not a restriction? 

    Thank you,

    Nancy Kilroy
    Principal Software Engineer
    PKWare 



    ------------------------------
    Nancy Kilroy
    ------------------------------


  • 2.  RE: SUBSYS JCL keyword and SMS datasets

    Posted Wed May 18, 2022 12:11 PM
    I suspect that the statement is due to a misunderstanding of the meaning of the SUBSYS keyword.
    IBM uses the term "subsystem" for a variety of unrelated concepts.  This keyword has nothing to do with the DS8000 Storage Subsystem, IBM 3800 Printing Subsystem or a tape subsystem.  SUBSYS refers to subsystems like JES2, JES3, Db2 and SMS.  Other examples include RACF, DFRM (DFSMSrmm), ISPF and OAM.  Subsystem names are limited to four characters.  The main list of subsystems is in SYS1.PARMLIB(IEFSSN00).  Others can add themselves after IPL.
    These SUBSYS subsystems were invented when MVS was invented in the early seventies, long before SMS was envisioned.  Subsystem data sets are logical constructs.  Examples are instream ("SYSIN") data sets and sysout data sets.  An early example was VPSS, Vector Processing Subsystem.  It was a subsystem to support a piece of vector processing hardware.  You sent numbers to it and it returned the results.
    Subsystem data sets do not have DSCBs or tape labels.  They are not represented in a catalog.  They are known only to the identified subsystem.  The SUBSYS keyword on the DD statement is very flexible.  The general syntax is SUBSYS=(subsys_name[,parameters]).  The parameters are optional and their syntax is determined by the subsystem.  The converter/interpreter calls the subsystem to parse the positional subparameters.  On a JES2 system, they can be as long as about 8 KB.
    The system in general has no concept of "creating" or keeping a subsystem data set.  If you code the DISP keyword on the DD statement, the system parses it but always sets MOD in the JFCB.
    I suspect that if you code DSNAME on the same DD statement, the system parses it and stores the name in the JFCB but otherwise takes no action such as looking it up in the catalog to get the volume serial number.  The reason is that the subsystem has responsibility for managing the DD.
    I see no reason why your subsystem can't do whatever it wants with the named data set.  Whether your subsystem supports reading and writing with BSAM and QSAM is your choice, although IBM does not provide much documentation for it.
    If the application program issues the DEVTYPE macro against the DD name, the device type returned will be "subsystem".  DEVTYPE has no knowledge of anything else for that DD name.

    ------------------------------
    Wayne Rhoten
    ------------------------------



  • 3.  RE: SUBSYS JCL keyword and SMS datasets

    Posted Wed May 18, 2022 03:15 PM
    Thank you Wayne!

    Thank you for answering this question so quickly, and for providing additional and very useful info!

    Nancy

    ------------------------------
    Nancy Kilroy
    ------------------------------