(If you have any questions about the content of this page, please contact
request@nwrdc.fsu.edu for clarification)
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 |
Click here to see some examples
Batch
Procedures for DB2
|
Procedure
|
Description |
|
DSNUPROC |
Generalized Utility
execution |
|
QMF |
QMF batch procedure
execution |
Please
review the instructions documented in each procedure.
High Level
Assembler at the NWRDC
|
ASMACL |
Compile and Load |
|
ASMAC |
Compile Only |
|
ASMACG |
Compile and Go |
|
ASMACLG |
Compile, Load and Go |
Click here to see an example.
SORT Procedures
| Procedure |
Description |
| SORTDL |
disk sort, large (12.6 M characters) |
| SORTDM |
disk sort, medium (4.2M characters) |
| SORTDS |
disk sort, small (.42M characters) |
Each sort proc invocation must be accompanied by
the following three DDcards
- SYSIN for the sort control cards
- SORTIN for the input data
- SORTOUT for the sort output
FOCUS
Procedures
|
Procedure |
Description |
|
FOCUS |
Direct FOCUS batch execution, including DB2 interface. |
|
FOCUSTSO |
FOCUS execution via background (batch) TSO, including DB2 interface and
dynamic file allocation via FOCEXEC TSO commands. |
|
FOCOMPDB |
Direct FOCUS execution for the purpose of compiling and binding static
DB2 plan based MODIFY FOCEXECs. |
Easytrieve
Procedures:
|
Procedure
|
Description |
|
EASYEXEC |
Execute Linked
CA-Easytrieve Program |
|
EASYLDB2 |
Compile and Link with DB2
Static module |
|
EASYLINK |
Compile and Link |
|
EASYPLNK |
Panvalet, Compile and
Link |
|
EASYPLUS |
Compile and Go |
Data Correlation and
Documentation System (DCD III)
|
Procedure
|
Description |
|
DCDACL |
allows the user to analyze a COBOL program.
|
|
DCDJCL |
allows the user to analyze JCL procedure.
|
Click here to see some
examples
SAS Procedure
|
Procedure
|
Description |
|
SAS |
Invokes the SAS system |
Click here for an example.
PANVALET
Procedures
|
PANMOV |
Consists of three steps; the
first does a PanValet dump, the second creates and initializes a new
PanValet library and the third restores the new library from the dump in
the first step |
|
PAN1 |
Executes PAN#1 |
Click here to see
some examples.
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
Compile JCL Changes to Use LE
Feedback Code
The
only change needed for batch use of the feedback codes copybook is to include
the copylib library in the SYSLIB concatenation of the compile step. The
following is an example:
//YOURJOB JOB
YOURJOBCARD
//*
//* COBOL
FOR MVS COMPILE AND LINK WITH LE FEEDBACK
//*
//COBMUCL EXEC COBMUCL,
// PARM.COB='YOURCOMPILEPARMS'
//COB.SYSLIB DD DSN=YOUR.COPYLIB,DISP=SHR
// DD DSN=SYS1.LEMVS.SCEESAMP,DISP=SHR
//COB.SYSIN DD DSN=YOUR.SOURCE.LIB(PROGRAM),DISP=SHR
//LKED.SYSLMOD DD DSN=YOUR.LOADLIB(PROGRAM
Sample Assembler JCL:
//YOURJOB JOB
YOURJOBCARD
//*
//* HIGH LEVEL ASSEMBLER COMPILE AND LINK
//*
//STEP1 EXEC HLASMCL
//C.SYSUT1 DD UNIT=(SYSDA,SEP=SYSLIB),
// SPACE=(CYL,(20,20)),DSN=&SYSUT1
//C.SYSIN DD DSN=iii.SOURCE.LIB(member1),DISP=SHR
//L.SYSLMOD DD DSN=iii.LOAD.LIB(member1),DISP=SHR
PANVALET JCL Examples
This example writes the output to the data set pointed to by DDNAME OUTPDS.
//YOURJOB JOB
YOURJOBCARD
/*JOBPARM L=50
//STEP1 EXEC
PAN1,USER=iii
//OUTPDS DD DSN=iii.OUTPUT,DISP=SHR
//SYSIN DD *
++OPTION OUTPUT,OUTPDS
++WRITE WORK,PREFIX=NL
/*
This prints a member listing from the PANDD1 PanValet library.
//YOURJOB JOB
YOURJOBCARD
//STEP01 EXEC PGM=PAN#2
//PANDD1 DD DSN=iii.PAN.VALET,DISP=SHR
//PANDD2 DD DUMMY
//PANDD3 DD DUMMY
//SYSPRINT DD SYSOUT=A
//SYSPUNCH DD DUMMY
//SYSIN DD *
++PRINT
/*
Examples of DCDIII
In the
following example, a member of a PDS is passed into DCD; DCD supplies to the
user a source listing and layout documentation.
//YOURJOB JOB
YOURJOBCARD
//ST1 EXEC DCDACL
//COPYLIB DD DD DSN=xxx.xxxxxxx,DISP=SHR (copybooks)
//COBOLIN DD DD DSN=xxx.xxxxxxx(cobol source),DISP=SHR
In a second example, DCDJCL
produces the PROC analysis reports:
//YOURJOB JOB
YOURJOBCARD
//DCDIII EXEC DCDJCL
//MBR.CTLCDMBR DD *
INDD=USERDD=PREFIX=SP analyze members beg.with ‘SP’
//MBR.USERDD DD DSN=USER.PROCEDURE.LIBRARY,DISP=SHR
Procedures SAS provide batch access to the
system. Sample execution JCL follows:
//YOURJOB JOB
YOURJOBCARD
//*
//STEPNAME EXEC SAS,'PARMS AND OPTIONS'
//SYSIN DD *
your SAS code goes here
/*