
Compile/Link for Batch
Compile and Link COBOL for Batch Processing
Batch COBOL Compile Procedures
Procedure | Description |
COBMUC | COBOL for z/OS compile from sequential dataset |
COBMUCL | COBOL for z/OS compile, link & go from sequential dataset |
COBMUCG | COBOL for z/OS compile and go from sequential dataset |
COBMUCLG | COBOL for Z/OS ,link & go from sequential dataset |
COBMULG | Z/OS link & go from sequential object module |
DB2COBM | DB2 pre-compile, COBOL for Z/OS compile, link & DB2 bind from sequential dataset |
PCOBMC | COBOL for z/OS compile from PanValet dataset |
PCOBMCG | COBOL for z/OS compile and go from PanValet dataset |
PCOBMCL | COBOL for z/OS compile & link from PanValet dataset |
PCOBMCLG | COBOL for z/OS compile link & go from PanValet dataset |
Sample JCL to Invoke Compile and Run COBOL Procedures
================================================================
Suggested COBOL and LINK EDIT Parameters
Typical, general purpose example:
If you want to compile and link your COBOL programs so that the maximum amount of memory is available to them, use the following COBOL and LINKAGE EDITOR parameters:
// PARM.COB='LIB,OBJECT,APOST,MAP,XREF,OFFSET,DATA(31),RMODE(ANY)',
// PARM.LKED='AMODE(31),RMODE(ANY),LIST,XREF'
- In a complex load module (several programs link edited together), all programs should be compiled with like parameters.
- The second set of parameters should not be used if any old VS-COBOL or 24 bit assembler programs are involved in the link edit.
================================================================
//YOURJOB JOB YOURJOBCARD
//*
//* COBOL FOR MVS COMPILE
//*
//COBMUC EXEC COBMUC,
// PARM.COB='YOURCOMPILEPARMS'
//COB.SYSLIB DD DSN=YOUR.COPYLIB,DISP=SHR
//COB.SYSIN DD DSN=YOUR.SOURCE.LIB(PROGRAM),DISP=SHR
================================================================
//YOURJOB JOB YOURJOBCARD
//*
//* COBOL FOR MVS COMPILE AND LINK
//*
//COBMUCL EXEC COBMUCL,
// PARM.COB='YOURCOMPILEPARMS'
//COB.SYSLIB DD DSN=YOUR.COPYLIB,DISP=SHR
//COB.SYSIN DD DSN=YOUR.SOURCE.LIB(PROGRAM),DISP=SHR
//LKED.SYSLMOD DD DSN=YOUR.LOADLIB(PROGRAM),DISP=SHR
================================================================
//YOURJOB JOB YOURJOBCARD
//*
//* COBOL FOR MVS COMPILE AND GO
//*
//COBMUCG EXEC COBMUCG,
// PARM.COB='YOURCOMPILEPARMS',
// PARM.GO='/YOURRUNPARMS'
//COB.SYSLIB DD DSN=YOUR.COPYLIB,DISP=SHR
//COB.SYSIN DD DSN=YOUR.SOURCE.LIB(PROGRAM),DISP=SHR
//GO.FILE1 DD SYSOUT=A
//GO.FILE2 DD DSN=YOUR.RUN.FILE2,DISP=SHR
//GO.FILE3 DD DSN=YOUR.RUN.FILE3,DISP=SHR
//GO.ETC DD DSN=YOUR.RUN.FILETC,DISP=SHR
//YOURJOB JOB YOURJOBCARD
//*
//* COBOL FOR MVS COMPILE, LINK AND GO
//*
//COBMUCLG EXEC COBMUCLG,
// PARM.COB='YOURCOMPILEPARMS',
// PARM.GO='YOURRUNPARMS'
//COB.SYSLIB DD DSN=YOUR.COPYLIB,DISP=SHR
//COB.SYSIN DD DSN=YOUR.SOURCE.LIB(PROGRAM),DISP=SHR
//GO.FILE1 DD SYSOUT=A
//GO.FILE2 DD DSN=YOUR.RUN.FILE2,DISP=SHR
//GO.FILE3 DD DSN=YOUR.RUN.FILE3,DISP=SHR
//GO.ETC DD DSN=YOUR.RUN.FILETC,DISP=SHR
=================================================================
//YOURJOB JOB YOURJOBCARD
//*
//* COBOL FOR MVS LINK AND GO
//*
//COBMULG EXEC COBMULG, // PARM.GO='YOURRUNPARMS'
//LKED.SYSLIN DD DSN=YOUR.OBJECT.LIB(PROGRAM),DISP=SHR
//GO.FILE1 DD SYSOUT=A
//GO.FILE2 DD DSN=YOUR.RUN.FILE2,DISP=SHR
//GO.FILE3 DD DSN=YOUR.RUN.FILE3,DISP=SHR
//GO.ETC DD DSN=YOUR.RUN.FILETC,DISP=SHR
=================================================================
//YOURJOB JOB YOURJOBCARD
//*
//* DB2 PRECOMPILE, COBOL FOR MVS COMPILE, LINK AND BIND
//*
//DB2COBM EXEC DB2COBM,
// MEMBER=PROGRAM, MEMBER NAME (DBRM AND LOAD)
// LINKLIB='YOUR.LOADLIB', YOUR LOAD LIBRARY
// DBRMLIB='YOUR.DBRM.LIB', YOUR DBRM LIBRARY
// SRCLIB1='YOUR.DCLGEN.LIB', LIBRARY WITH TABLE DECLARATIONS
// COPYLIB='YOUR.COPYLIB', LIBRARY WITH COBOL COPYBOOKS
// LITERAL='APOST', STRING DELIMITER (APOST OR QUOTE)
// DB2OPT='DEC(31),SOURCE,SQL(ALL)', PRE-COMPILE OPTIONS
// DB2ATT='TSO', ATTACHMENT FACILITY (TSO, CAF or RRSAF)
// COBOPT='YOUR COMPILE PARMS' COMPILE OPTIONS
//*
//DB2.SYSIN DD DSN=YOUR.SOURCE.LIB(PROGRAM),DISP=SHR
//BIND.SYSTSIN DD *
DSN SYSTEM(DB2T OR DSN)
BIND PACKAGE(YOURCOLLECTIONID) -
MEMBER(PROGRAM) -
ACTION(REP) ISOLATION(CS)
END
//
=================================================================
//YOURJOB JOB YOURJOBCARD
//*
//* COBOL FOR MVS COMPILE
//* WITH PANVALET INPUT
//*
//PCOBMC EXEC PCOBMC,USER=YOURPANPREFIX,
// PARM.COB='YOURCOMPILEPARMS'
//PAN1.SYSIN DD *
++WRITE WORK,PROGRAM //COB.SYSLIB DD DSN=YOUR.COPYLIB,DISP=SHR
=================================================================
//YOURJOB JOB YOURJOBCARD
//*
//* COBOL FOR MVS COMPILE AND GO
//* WITH PANVALET INPUT
//*
//PCOBMCG EXEC PCOBMCG,USER=YOURPANPREFIX,
// PARM.COB='YOURCOMPILEPARMS',
// PARM.GO='/YOURRUNPARMS'
//PAN1.SYSIN DD *
++WRITE WORK,PROGRAM
//COB.SYSLIB DD DSN=YOUR.COPYLIB,DISP=SHR
//GO.FILE1 DD SYSOUT=A
//GO.FILE2 DD DSN=YOUR.RUN.FILE2,DISP=SHR
//GO.FILE3 DD DSN=YOUR.RUN.FILE3,DISP=SHR
//GO.ETC DD DSN=YOUR.RUN.FILETC,DISP=SHR
=================================================================
//YOURJOB JOB YOURJOBCARD
//*
//* COBOL FOR MVS COMPILE AND LINK
//* WITH PANVALET INPUT
//*
//PCOBMCL EXEC PCOBMCL,USER=YOURPANPREFIX,
// PARM.COB='YOURCOMPILEPARMS'
//PAN1.SYSIN DD *
++WRITE WORK,PROGRAM
//COB.SYSLIB DD DSN=YOUR.COPYLIB,DISP=SHR
//LKED.SYSLMOD DD DSN=YOUR.LOADLIB(PROGRAM),DISP=SHR
=================================================================
//YOURJOB JOB YOURJOBCARD
//*
//* COBOL FOR MVS COMPILE, LINK AND GO
//* WITH PANVALET INPUT
//*
//PCOBMCLG EXEC PCOBMCLG,USER=YOURPANPREFIX,
// PARM.COB='YOURCOMPILEPARMS',
// PARM.GO='YOURRUNPARMS'
//PAN1.SYSIN DD *
++WRITE WORK,PROGRAM
//COB.SYSLIB DD DSN=YOUR.COPYLIB,DISP=SHR
//COB.SYSIN DD DSN=YOUR.SOURCE.LIB(PROGRAM),DISP=SHR
//GO.FILE1 DD SYSOUT=A
//GO.FILE2 DD DSN=YOUR.RUN.FILE2,DISP=SHR
//GO.FILE3 DD DSN=YOUR.RUN.FILE3,DISP=SHR
//GO.ETC DD DSN=YOUR.RUN.FILETC,DISP=SHR