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