Skip to content

Model JCL

The following sample JCL models are derived from JCL members delivered in the SERCOMC CNTL library on the download image or distribution CD. The models have been modified to conform to instructions in previous chapters in this book.

Model Assemble Job

Model assemble JCL is found in member ASSEMBLE in the SERCOMC CNTL library. Use this JCL to assemble and link edit modified program source such as security module SERLCSEC or Job Review exit program SEREX004.

The model JCL has been changed here to show (in bold):

  • Assemble SYSIN input from CUSTOM ASMSRC library.

  • Link edit SYSLIB with CUSTOM LOAD library concatenated over the LOAD library unloaded from the download image or distribution CD.

  • Link edit SYSLMOD output to the CUSTOM LOAD library.

//KCAMPBEX JOB (),'S$.V711T01 ASSEMBLE',
//         CLASS=A,MSGCLASS=Y,NOTIFY=KCAMPBE
//*
//******************************************************************
//* This is a sample Assembly of 'SERxxxxx'. You may prefer to use
//* one of your standard procedures such as 'ASMFCL' or 'ASMHCL'
//* instead. Just be sure that it assembles clean and link-edits
//* without any UNRESOLVED EXTERNAL REFERENCES.
//* ------------------------------
//******************************************************************
//ASMLINK PROC SOMNODE=SOMNODE,     <==== HIGHEST LEVEL NODEDE
// MBR=SERXXXXX,                    <==== MODULE NAME
// AC=0                             <==== Authorization code
//ASM     EXEC PGM=ASMA90,REGION=2M,
//             PARM='LIST,XREF(SHORT),RENT,OBJECT'
//SYSLIB    DD DISP=SHR,DSN=SYS1.MACLIB
//          DD DISP=SHR,DSN=&SOMNODE..SERCOMC.ASMCPY
//          DD DISP=SHR,DSN=&SOMNODE..SERCOMC.ASMSRC
//          DD DISP=SHR,DSN=SYS1.MODGEN
//SYSPRINT  DD SYSOUT=*
//SYSPUNCH  DD DUMMY
//SYSUT1    DD UNIT=SYSDA,SPACE=(CYL,(1,1))
//SYSLIN    DD DISP=(,PASS),DSN=&&OBJECT,
//             UNIT=SYSDA,SPACE=(TRK,(2,1)),
//             DCB=(RECFM=F,BLKSIZE=80)
//SYSIN     DD DISP=SHR,DSN=&SOMNODE..SERCOMC.CUSTOM.ASMSRC(&MBR)
//*
//LKED    EXEC PGM=IEWL,COND=(4,LT),REGION=1M,
//             PARM='LIST,XREF,RENT,REFR,NCAL,MAP,AC=&AC'
//SYSPRINT  DD SYSOUT=*
//SYSLIB    DD DISP=SHR,DSN=&SOMNODE..SERCOMC.CUSTOM.LOAD
//          DD DISP=SHR,DSN=&SOMNODE..SERCOMC.LOAD
//SYSUT1    DD UNIT=SYSDA,SPACE=(CYL,1)
//SYSLMOD   DD DISP=SHR,DSN=&SOMNODE..SERCOMC.CUSTOM.LOAD(&MBR)
//SYSLIN    DD DISP=(OLD,DELETE),DSN=&&OBJECT
//        PEND
//ASMLINK EXEC ASMLINK,
//             SOMNODE='CMNTP.S$.V711T01',
//             AC=0,
//             MBR=SERLCSEC
//* EOJ

Sernet Procedure

This JCL is a customized version of member SERVER from the SERCOMC CNTL library.

  • STEPLIB with a custom LOAD library concatenated over a library containing components unloaded from the download image or distribution CD. The custom LOAD library might contain modified components such as security module SERLCSEC or exit program SEREX003.
  • PARM DDNAME= added to point to ddname PARMLIB where a PDS member contains additional Sernet keyword parameters.
  • SERLIC DD statement pointing to licenses stored in a PDS.
//SERVER PROC
//APFAUTH EXEC PGM=IEFBR14
// SETPROG APF,ADD,DSNAME=CMNTP.S$.V711T01.SERCOMC.CUSTOM.LOAD,SMS
// SETPROG APF,ADD,DSNAME=CMNTP.S$.V711T01.SERCOMC.LOAD,SMS
//SERVER EXEC PGM=SERVER,       *Started Task
//      REGION=0M,                   *Maximum Region
//      DYNAMNBR=200,                *High allocations
//      PARM='DDNAME=PARMLIB'        *Execution Parms
//*********************************************************************
//* This procedure assumes the following:
//* 1) There will be more than one subsystem.
//*    Leaving no value for ID gets the default      subsystem 'SER '.
//*    A testing subsystem could be ID=T which  generates 'SERT'
//*   and may call for a different set of libraries.
//* 2) If you have Abend-AID, be certain to kill it  with
//*    //ABNLIGNR because it gets in the way of problem solving.
//* 3) //PANSYSIN & //PANPRINT are only for PANvalet. Take them
//*    out if you do not plan on using PANvalet at your shop.
//* 4) //OSJOB is strictly for LIBrarian. Take it out if you do not
//*    plan on using LIBrarian at your shop.
//* 5) //SYSIN & //SYSPRINT may be needed for  IEBCOPY (but IEBCOPY
//*    via SERCOPY prefers to use //CPYPRINT).
//* 6) Other applications (e.g. CMN) may need some DDNAMEs added.
//* 7) IMS needs Steplib concatenation to RESLIB and    as //DFSRESLB
//* 8) DB2 could use DSNTRACE for testing but take  it out later.
//* 9) TCP/IP will need C/370 runtime libraries if  dynamic addressing
//*    used. Also //SYSTCPD will be needed.
//* 10) //SER#PARM is an existing PDS(E) where each  member reflects a
//*    subsystem; e.g. #SERA, #SER7. TCP/IP & port  numbers stored.
//* 11) //XMLSPACE is needed when XML support is     requested.
//*    The XML dataspace needs to be loaded before  XML can be used.
//*    See the Installation Guide concerning XML load.
//* ****** NOTE ******
//* Diagnostic capture is to SYSMDUMP.
//* The DD statement must point to a dataset, not SYSOUT.
//* The DCB attributes are FBS, LRECL/BLKSIZE = 4160.
//* An allocation of 200/100 cyls is a good starting point.
//* DISP=MOD as an initial disposition allows multiple dumps to
//* be recorded during the life of the same stc.
//* Use of a gdg allows the stc to be recycled immediately without
//* losing this diagnostic data.
//*********************************************************************
//STEPLIB       DD DISP=SHR, * Custom Load
//                 DSN=CMNTP.S$.V711T01.SERCOMC.CUSTOM.LOAD
//              DD DISP=SHR, * Vendor Load
//                 DSN=CMNTP.S$.V711T01.SERCOMC.LOAD
//* IMS related allocations follow:
//*             DD DISP=SHR,DSN=node.IMSESA.APF.RESLIB * IMS-DL/1 RESLIB
//PARMLIB       DD DISP=SHR,
//                 DSN=CMNTP.S$.V711.SERCOMC.PARMLIB(S$V711)
//SERLIC        DD DISP=SHR, * SER10TY LICENSE
//                 DSN=CMNTP.S0.V710.LICENSE.ZDD
//SER#PARM      DD DISP=SHR, * TCP/IP port map
//                 DSN=CMNTP.S$.V711.SERCOMC.TCPIPORT
//XMLSPACE      DD DISP=SHR, * XML dataspace
//                 DSN=CMNTP.S$.V711.SERCOMC.XMLSPACE
//*DFSRESLB     DD DISP=SHR,DSN=node.IMSESA.APF.RESLIB * IMS-DL/1 RESLIB
//* DB2 allocation for DSNTRACE is temporary
//*DSNTRACE     DD SYSOUT=*
//*SYSTCPD      DD DISP=SHR,DSN=node.TCPIP.PARMLIB * TCP/IP parameters
//SERPRINT      DD SYSOUT=* * SERVER Messages
//SYSMDUMP      DD DISP=(MOD,CATLG,CATLG), * SYSMDUMP
//                 DSN=CMNTP.S$.V711.SERCOMC.SYSMDUMP(+1),
//                 UNIT=SYSDA,SPACE=(CYL,(2,10),RLSE),
//                 DCB=(DSORG=PS,RECFM=FBS,LRECL=4160,BLKSIZE=4160)
//ABNLIGNR      DD DUMMY * Kill Abend-AID
//PANSYSIN      DD DISP=(,DELETE),DSN=&&PANSYS, * PANvalet SYSIN
//                 UNIT=SYSDA,SPACE=(CYL,(10,5)),
//                 DCB=(DSORG=PS,RECFM=FB,LRECL=80,BLKSIZE=6000)
//PANPRINT      DD SYSOUT=* * PANvalet SYSPRINT
//OSJOB         DD DUMMY, * LIBrarian output
//                 DCB=(RECFM=FB,LRECL=80,BLKSIZE=400)
//SYSPRINT      DD SYSOUT=* * PRINT for IEBCOPY, LIB
//CPYPRINT      DD DUMMY * PRINT for SERCOPY/IEBCOPY
//SYSIN         DD DISP=(,DELETE), * SYSIN for IEBCOPY, LIB
//                 DSN=&&SYSIN,UNIT=SYSDA,SPACE=(CYL,(10,5)),
//                 DCB=(DSORG=PS,RECFM=FB,LRECL=80,BLKSIZE=6000)
//* EOJ
Back to top