Compile/Link for Batch

Compile and Link COBOL for Batch Processing

Batch COBOL Compile Procedures

 

ProcedureDescription
COBMUCCOBOL for z/OS compile from sequential dataset
COBMUCLCOBOL for z/OS compile, link & go from sequential dataset
COBMUCGCOBOL for z/OS compile and go from sequential dataset
COBMUCLGCOBOL for Z/OS ,link & go from sequential dataset
COBMULGZ/OS link & go from sequential object module
DB2COBMDB2 pre-compile, COBOL for Z/OS compile, link & DB2 bind from sequential dataset
PCOBMCCOBOL for z/OS compile from PanValet dataset
PCOBMCGCOBOL for z/OS compile and go from PanValet dataset
PCOBMCLCOBOL for z/OS compile & link from PanValet dataset
PCOBMCLGCOBOL 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.

================================================================

COBMUC

//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

 

================================================================

 COBMUCL

//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
 


================================================================

COBMUCG

//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

 

COBMUCLG

//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


=================================================================

COBMULG

//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


=================================================================

DB2COBM

//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
//

 

=================================================================

PCCOBMC

 //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
 

 

=================================================================

POBMCG

//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
 

 

=================================================================

POBMCL

//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
 


=================================================================

POBMCLG

//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