Using your own job streams
You can use the supplied cataloged procedures as a model to write your own JCL to translate, assemble (or compile), and link-edit your application programs.
The procedures are installed in the CICSTS53.CICS.SDFHPROC library.
The following information summarizes the important points about the translator and each main category of programs. For simplicity, the descriptions assume that programs are loaded into CICSTS53.CICS.SDFHLOAD or IMS.PGMLIB. You can load programs into any libraries, but only when they are either included in the DFHRPL or dynamic LIBRARY concatenation in the CICS® job stream, or included in the STEPLIB library concatenation in the batch job stream (for a stand-alone IMS batch program).
Translator requirements
The CICS translator requires a minimum of 256 KB of virtual storage. You might need to use the translator options CICS and DLI.Online programs that use EXEC CICS or EXEC DLI commands
- Always use the translator option CICS. If the program issues EXEC DLI commands, use the translator option DLI.
- The link-edit input (defined by the SYSLIN DD statement) must
include the correct interface module before the object deck.
Therefore, place an INCLUDE statement for the interface module before
the object deck. Also put ORDER statements before the INCLUDE statements,
and an ENTRY statement after all the INCLUDE statements. The interface modules are as follows:
- DFHEAI
- Assembler
- DFHELII
- All HLL languages
In the CICS-supplied procedures, the input to the link-edit step (defined by the SYSLIN DD statement) concatenates a library member with the object deck. This member contains an INCLUDE statement for the required interface module. For example, the DFHYITVL procedure concatenates the library member DFHEILID, which contains the following INCLUDE statement:INCLUDE SYSLIB(DFHELII) - Place the load module output from the link-edit (defined by the SYSLMOD DD statement) in CICSTS53.CICS.SDFHLOAD, or your own program library.
INCLUDE SYSLIB(DFHELII)//* The following JCL could be used to execute this procedure
//*
//APPLPROG EXEC MYYITVL,
// INDEX='CICSTS53.CICS
// PROGLIB='CICSTS53.CICS.SDFHLOAD',
// DSCTLIB='CICSTS53.CICS.SDFHCOB',
// INDEX2='user.qualif'
// OUTC=A, Class for print output
// REG=4M, Region size for all steps
// LNKPARM='LIST,XREF', Link edit parameters
// WORK=SYSDA Unit for work data sets
//TRN.SYSIN DD *
//* .
//* . Application program
//* .
//*
//LKED.SYSIN DD *
INCLUDE SYSLIB(DFHELII)
NAME anyname(R)
//*
//MYYITVL PROC SUFFIX=1$, Suffix for translator module
// INDEX='CICSTS53.CICS', Qualifier(s) for CICS libraries
// PROGLIB='CICSTS53.CICS.SDFHLOAD', Name of o/p library
// DSCTLIB='CICSTS53.CICS.SDFHCOB', Private macro/dsect
// AD370HLQ='SYS1', Qualifier(s) for AD/Cycle compiler
// LE370HLQ='SYS1', Qualifier(s) for Language Environment libraries
// OUTC=A, Class for print output
// REG=4M, Region size for all steps
// LNKPARM='LIST,XREF', Link edit parameters
// WORK=SYSDA Unit for work data sets
//*
//* This procedure contains 3 steps
//* 1. Exec the COBOL translator (using the supplied suffix 1$)
//* 2. Exec the COBOL compiler
//* 3. Linkedit the output into data set &PROGLIB
//TRN EXEC PGM=DFHECP &SUFFIX,,
// PARM='COBOL3',
// REGION=®
//STEPLIB DD DSN=&INDEX..SDFHLOAD,DISP=SHR
//SYSPRINT DD SYSOUT=&OUTC
//SYSPUNCH DD DSN=&&SYSCIN,
// DISP=(,PASS),UNIT=&WORK,
// DCB=BLKSIZE=400,
// SPACE=(400,(400,100))
//*
//COB EXEC PGM=IGYCRCTL,REGION=®,
// PARM='NODYNAM,LIB,OBJECT,RENT,APOST,MAP,XREF'
//STEPLIB DD DSN=&AD370HLQ..SIGYCOMP,DISP=SHR
//SYSLIB DD DSN=&DSCTLIB,DISP=SHR
// DD DSN=&INDEX..SDFHCOB,DISP=SHR
// DD DSN=&INDEX..SDFHMAC,DISP=SHR
// DD DSN=&INDEX..SDFHSAMP,DISP=SHR
//SYSPRINT DD SYSOUT=&OUTC
//SYSIN DD DSN=&&SYSCIN,DISP=(OLD,DELETE)
//SYSLIN DD DSN=&&LOADSET,DISP=(MOD,PASS),
// UNIT=&WORK,SPACE=(80,(250,100))
//SYSUT1 DD UNIT=&WORK,SPACE=(460,(350,100))
//SYSUT2 DD UNIT=&WORK,SPACE=(460,(350,100))
//SYSUT3 DD UNIT=&WORK,SPACE=(460,(350,100))
//SYSUT4 DD UNIT=&WORK,SPACE=(460,(350,100))
//SYSUT5 DD UNIT=&WORK,SPACE=(460,(350,100))
//SYSUT6 DD UNIT=&WORK,SPACE=(460,(350,100))
//*
//LKED EXEC PGM=IEWL,REGION=®,
// PARM='&LNKPARM',COND=(5,LT,COB)
//SYSLIB DD DSN=&INDEX..SDFHLOAD,DISP=SHR
// DD DSN=&LE370HLQ..SCEELKED,DISP=SHR
//SYSLMOD DD DSN=&PROGLIB,DISP=SHR
//SYSUT1 DD UNIT=&WORK,DCB=BLKSIZE=1024,
// SPACE=(1024,(200,20))
//SYSPRINT DD SYSOUT=&OUTC
//SYSLIN DD DSN=&©LINK,DISP=(OLD,DELETE)
// DD DSN=&&LOADSET,DISP=(OLD,DELETE)
// DD DDNAME=SYSIN
//PEND
//* Online programs that use the CALL DLI interface
- Specify the translator option CICS,
but not the translator option DLI. Note: For a program that does not use CICS commands and is invoked only by a running transaction (and never directly by CICS task initiation), no translator step is needed.
- The interface module, DFHDLIAI, is automatically included by the link-edit. If you use an INCLUDE statement in the link-edit input, place it after the object deck.
- Include copybook DLIUIB in your program.
- Place the load module output from the link-edit (defined by the SYSLMOD DD statement) in CICSTS53.CICS.SDFHLOAD, or a user-defined application program library.
Batch or BMP programs that use EXEC DLI commands
- The translator option DLI is required. Do not specify the translator option CICS.
- The INCLUDE statement for the interface module must follow the object deck in the input to the link-edit (defined by the SYSLIN DD statement). The interface module, DFSLI000, which resides on IMS.RESLIB, is the same for all programming languages. If you include CICSTS53.CICS.SDFHLOAD in the input to the link-edit (defined by the SYSLIB DD statement), concatenate it after IMS.RESLIB.
- Place the load module output from the link-edit (defined by the SYSLMOD DD statement) in IMS.PGMLIB, or a library concatenated in the STEPLIB DD statement of the batch job stream.
Batch or BMP programs that use DL/I CALL commands
If you want to prepare assembler, COBOL, or PL/I programs that use the DL/I CALL interface, do not use the CICS-supplied procedures. Programs that contain CALL ASMTDLI, CALL CBLTDLI, or CALL PLITDLI should be assembled or compiled, and link-edited, as IMS applications, and are not subject to any CICS requirements. See the relevant IMS manual for information about how to prepare application programs that use the DL/I CALL interface.