Currently, the CMN$$JBL (generate JOBLIB DD skeleton) and CMN$$SEX (generate SYSEXEC DD skeleton) along with CMN$$DSN require modifications to ensure that the correct ChangeMan ZMF load library and REXX exec library concatenations are built, depending on the ChangeMan ZMF subsystem ID.
This proposal sets forth to reduce---and likely even eliminate---the need to customize CMN$$JBL and CMN$$SEX, and just have the customizations be done in CMN$$DSN. My understanding is that CMN$$DSN was created to move all data set specifications---and various scenarios for data set specifications---out of other skeletons to keep the other skeletons simpler. If there is the need for more complicated logic, then this complicated logic would be in a skeleton such as CMN$$DSN that is meant to be customized anyway. This way, other skeletons such as CMN$$JBL, CMN$$SEX, CMN$$COE (which uses &SIGYCMP), CMN$$SYL (which uses &SCEESPC, &SCEELKD, and &SDFHLOD), etc. stay simpler without the potential need for customizations that might require ")SEL" / ")ENDSEL" control statements, etc., depending on the requirements.
In the case of Test ChangeMan ZMF concatenations, the ChangeMan ZMF subsystem ID needs to be specified in CMN$$JBL and CMN$$SEX. If there are multiple Test ChangeMan ZMF subsystems---as could be the case with a DP-site / P-site configuration---then multiple test ChangeMan ZMF subsystem IDs must be coded for within CMN$$JBL, CMN$$SEX, and CMN$$DSN.
In the case of Production ChangeMan ZMF concatenations, the ChangeMan ZMF subsystem ID needs to be specified in CMN$$DSN. If there are multiple Production ChangeMan ZMF subsystems---as could be the case with a DP-site / P-site configuration---then multiple Production ChangeMan ZMF subsystem IDs must be coded for within CMN$$DSN.
It seems to be silly that we need to be coding for Production and Test ChangeMan ZMF JOBLIB and SYSEXEC data set concatenation requirements in different places. Thus, the proposal to move all this coding to CMN$$DSN, and keep CMN$$JBL and CMN$$SEX simpler.
I've attached the CMN$$JBL and CMN$$SEX skeletons that do not require customizations to build a concatenation based on ChangeMan ZMF subsystem ID. Additionally, per how these skeletons have been coded, these skeletons will automatically take into consideration some shops that (1) choose to put the ChangeMan ZMF and SerNet load modules in separate load libraries, and (2) some shops that choose to put ChangeMan ZMF and SerNet load modules in together in the same load library.
In the case of (1), all the &ZMF* and &SER* variables noted below would be customized in CMN$$DSN. In the case of (2), only the &ZMF* variables noted below would be customized in CMN$$DSN, and the &SER* variables would be set to blank/null in CMN$$DSN.
Here are the variable names referenced in CMN$$JBL with associated descriptions:
- &ZMFCJBT - Test ChangeMan ZMF Custom Load Library
- &SERCJBT - Test SerNet Custom Load Library
- &ZMFVJBT - Test ChangeMan ZMF Vendor Load Library
- &SERVJBT - Test SerNet Vendor Load Library
- &ZMFCJBP - Production ChangeMan ZMF Custom Load Library
- &SERCJBP - Production SerNet Custom Load Library
- &ZMFVJBP - Production ChangeMan ZMF Vendor Load Library
- &SERVJBP - Production SerNet Vendor Load Library
Here are the variable names referenced in CMN$$SEX with associated descriptions:
- &ZMFCRXT - Test ChangeMan ZMF Custom REXX Exec Library (i.e. .REX)
- &SERCRXT - Test SerNet Custom Compiled REXX Exec Library (i.e. .CEXEC)
- &ZMFVRXT - Test ChangeMan ZMF Vendor REXX Exec Library (i.e. .REX)
- &SERVRXT - Test SerNet Vendor Compiled REXX Exec Library (i.e. .CEXEC)
- &ZMFCRXP - Production ChangeMan ZMF Custom REXX Exec Library (i.e. .REX)
- &SERCRXP - Production SerNet Custom Compiled REXX Exec Library (i.e. .CEXEC)
- &ZMFVRXP - Production ChangeMan ZMF Vendor REXX Exec Library (i.e. .REX)
- &SERVRXP - Production SerNet Vendor Compiled REXX Exec Library (i.e. .CEXEC)
The delivered CMN$$DSN skeleton would remove all existing code having to do with setting the JOBLIB and SYSEXEC concatenation, and be replaced with the following:
)CM
)CM This defines the various load libraries used to build the JOBLIB
)CM concatenation.
)CM (CMN$$JBL)
)CM
)SET ZMFCJBT = &Z
)SET SERCJBT = &Z
)SET ZMFVJBT = &Z
)SET SERVJBT = &Z
)CM
)CM JOBLIB DD for Test ChangeMan ZMF subsystem
)CM
)IF &SUBSYS EQ t THEN )DO
)SET ZMFCJBT = somnode.CMNZMFt.CUSTOM.LOAD
)SET SERCJBT = somnode.SERCOMCt.CUSTOM.LOAD
)SET ZMFVJBT = somnode.CMNZMFt.LOAD
)SET SERVJBT = somnode.SERCOMCt.LOAD
)SET ZMFCJBP = somnode.CMNZMF.CUSTOM.LOAD
)SET SERCJBP = somnode.SERCOMC.CUSTOM.LOAD
)SET ZMFVJBP = somnode.CMNZMF.LOAD
)SET SERVJBP = somnode.SERCOMC.LOAD
)ENDDO
)CM
)CM JOBLIB DD for Production ChangeMan ZMF subsystems
)CM
)IF &SUBSYS EQ p THEN )DO
)SET ZMFCJBP = somnode.CMNZMF.CUSTOM.LOAD
)SET SERCJBP = somnode.SERCOMC.CUSTOM.LOAD
)SET ZMFVJBP = somnode.CMNZMF.LOAD
)SET SERVJBP = somnode.SERCOMC.LOAD
)ENDDO
)CM
)CM This defines the various REXX libraries used to build the SYSEXEC
)CM concatenation for REXX
)CM (CMN$$SEX)
)CM
)SET ZMFCRXT = &Z
)SET SERCRXT = &Z
)SET ZMFVRXT = &Z
)SET SERVRXT = &Z
)CM
)CM SYSEXEC DD for Test ChangeMan ZMF subsystems
)CM
)IF &SUBSYS EQ t THEN )DO
)SET ZMFCRXT = somnode.CMNZMFt.CUSTOM.REX
)SET SERCRXT = somnode.SERCOMCt.CUSTOM.CEXEC
)SET ZMFVRXT = somnode.CMNZMFt.REX
)SET SERVRXT = somnode.SERCOMCt.CEXEC
)SET ZMFCRXP = somnode.CMNZMF.CUSTOM.REX
)SET SERCRXP = somnode.SERCOMC.CUSTOM.CEXEC
)SET ZMFVRXP = somnode.CMNZMF.REX
)SET SERVRXP = somnode.SERCOMC.CEXEC
)ENDDO
)CM
)CM SYSEXEC DD for Production ChangeMan ZMF subsystems
)CM
)IF &SUBSYS EQ p THEN )DO
)SET ZMFCRXP = somnode.CMNZMF.CUSTOM.REX
)SET SERCRXP = somnode.SERCOMC.CUSTOM.CEXEC
)SET ZMFVRXP = somnode.CMNZMF.REX
)SET SERVRXP = somnode.SERCOMC.CEXEC
)ENDDO
Note the usage of ")IF" control statements vs. ")SEL" control statements. At shops where there are many ChangeMan ZMF subsystems to consider, usage of ")SEL" control statements would result in being unwieldy to maintain. Usage of ")IF" control statements allows the use of ")ELSE )IF" and ")ELSE )DO" control statements, and maintenance of logic would be easier.
#Customizationoptions
#Simplify