Using your own job streams

If you want to write your own JCL to translate, assemble (or compile), and link-edit your application programs, you can use the supplied cataloged procedures as a model. They are installed in the CICSTS31.CICS.SDFHPROC library.

The rest of this section summarizes the important points about the translator and each of the main categories of program. For simplicity, the following discussion states that you load programs into CICSTS31.CICS.SDFHLOAD or IMS™.PGMLIB. In fact, you can use any libraries, but only when they are either included in the DFHRPL 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, please rename the IMS libraries accordingly.

Translator requirements

The CICS translator requires a minimum of 256KB of virtual storage. You may 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:

    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 CICSTS31.CICS.SDFHLOAD, or your own program library.

Figure 25 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 25. Sample user-defined JCL to install a COBOL program
//*      The following JCL could be used to execute this procedure                        
//*                             
//APPLPROG EXEC MYYITVL,                             
//       INDEX='CICSTS31.CICS         
//       PROGLIB='CICSTS31.CICS.SDFHLOAD', 
//       DSCTLIB='CICSTS31.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 datasets             

//TRN.SYSIN  DD *                                             
//*         .                                                          
//*         . Application program                                      
//*         .                                                          
//*                                                            
//LKED.SYSIN DD *                                             
        INCLUDE SYSLIB(DFHELII)
        NAME anyname(R)                                            
//* 
//MYYITVL PROC SUFFIX=1$,           Suffix for translator module       
//       INDEX='CICSTS31.CICS', Qualifier(s) for CICS libraries         
//       PROGLIB='CICSTS31.CICS.SDFHLOAD', Name of o/p library 
//       DSCTLIB='CICSTS31.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 datasets             
//*                                                                     
                                                                       
//*      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 dataset &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 only invoked 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. Start of changeInclude copybook DLIUIB in your program.End of change
  4. Place the load module output from the link-edit (defined by the SYSLMOD DD statement) in CICSTS31.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 CICSTS31.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 any of 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.

[[ Contents Previous Page | Next Page Index ]]