The Ultimate Solution to Simplify Your Data Center
Compile and Link COBOL for Batch Processing
Batch COBOL Compile Procedures
| Procedure | Description |
| COBMUC | COBOL/MVS compile from sequential dataset |
| COBMUCG | COBOL/MVS compile and go from sequential dataset |
| COBMUCL | COBOL/MVS compile LE/MVS link from sequential dataset |
| COBMUCLG | COBOL/MVS compile LE/MVS link & go from sequential dataset |
| COBMULG | LE/MVS link & go from sequential object module |
| DB2COBM | DB2 pre-compile, COBOL/MVS compile, LE/MVS link and DB2 bind from sequential dataset |
| PCOBMC | COBOL/MVS compile from PanValet dataset |
| PCOBMCG | COBOL/MVS compile and go from PanValet dataset |
| PCOBMCL | COBOL/MVS compile LE/MVS link from PanValet dataset |
| PCOBMCLG | COBOL/MVS compile LE/MVS link & go from PanValet dataset |
Sample JCL to Invoke Compile and Run COBOL Procedures
================================================================
Suggested COBOL and LINK EDIT Parameters
Typical, general purpose example:
// PARM.COB='LIB,OBJECT,APOST,MAP,XREF,OFFSET',
// PARM.LKED='LIST,XREF'
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
//*
//* COBOL FOR MVS COMPILE, LINK AND GO USING DB2
//*
//DB2COBM EXEC DB2COBM,
// SRCLIB1='YOUR.DCLGEN.LIB', LIBRARY WITH TABLE DECLARATIONS
// COPYLIB='YOUR.COPYLIB', LIBRARY WITH COBOL COPYBOOKS
// DBRMLIB='YOUR.DBRM.LIB', YOUR DBRM LIBRARY
// LINKLIB='YOUR.LOADLIB', YOUR LOAD LIBRARY
// MEMBER=PROGRAM, MEMBER NAME (DBRM AND LOAD)
// LITERAL='YOURCOMPILEPARMS' COMPILE OPTIONS
//*
//DB2.SYSIN DD DSN=YOUR.SOURCE.LIB(PROGRAM),DISP=SHR
//BIND.SYSTSIN DD *
DSN SYSTEM(DB2T OR DSN)
BIND PLAN(YOURPLAN) -
MEMBER(PROGRAM) -
ACTION(REP) RETAIN 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
