Northwest Regional Data Center

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