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).

Note: The IMS libraries referred to in the job streams are identified by IMS.libnam (for example IMS.PGMLIB). If you use your own naming convention for IMS libraries, you must rename the IMS libraries accordingly.

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

  1. Always use the translator option CICS. If the program issues EXEC DLI commands, use the translator option DLI.
  2. 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)
  3. Place the load module output from the link-edit (defined by the SYSLMOD DD statement) in CICSTS53.CICS.SDFHLOAD, or your own program library.
Figure 1 shows sample JCL and an inline procedure, based on the CICS-supplied procedure DFHYITVL, that can be used to install COBOL application programs. The procedure does not include the COPYLINK step and concatenation of the library member DFHEILID that contains the INCLUDE statement for the required interface module (as included in the DFHYITVL procedure). Instead, the JCL provides the following INCLUDE statement:
  INCLUDE SYSLIB(DFHELII)
If this statement was not provided, the link-edit would return an error message for unresolved external references, and the program output would be marked as not executable.
Figure 1. Sample user-defined JCL to install a COBOL program
//*      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=&REG

//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=&REG,                                
//       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=&REG,                                
//            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=&&COPYLINK,DISP=(OLD,DELETE)                     
//         DD DSN=&&LOADSET,DISP=(OLD,DELETE)                      
//         DD DDNAME=SYSIN 
//PEND 
//*       

Online programs that use the CALL DLI interface

  1. 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.
  2. 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.
  3. Include copybook DLIUIB in your program.
  4. 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

  1. The translator option DLI is required. Do not specify the translator option CICS.
  2. 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.
  3. 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.