Running your programs under CICS

After you write your program, you need to compile and run it. The examples listed in this section show the steps necessary to do so.

QMF does not ship the REXX EXEC, JCL, or CLIST in these examples, but you can copy them from here, altering them to suit your installation.

Translating, compiling, and link-editing under CICS in MVS

When you translate, compile, and link-edit a program that uses the QMF callable interface, consider the following:

The following is an example using the CICS-supplied procedure DFHEBTPL. For instructions on how to use this procedure, see your release of CICS for VSE/ESA System Definition Guide.

Figure 60. JCL for running the CICS translator, PL/I compiler, and linkage editor
//samPLI    JOB
//          EXEC PROC=DFHEBTPL
//TRN.SYSIN DD  *
*PROCESS  XOPTS(CICS translator options .....)
          .
          Your program or copy of QMF sample DSQABFP
          .
/*
//* Provide Access to QMF Communications Macro DSQCOMML
//PLI.SYSLIB   DD DSN=QMF720.SDSQSAPE,DISP=SHR
//* Provide Access to QMF Interface Module
//LKED.QMFLOAD DD DSN=QMF720.SDSQLOAD,DISP=SHR
//LKED.SYSIN   DD *
          INCLUDE CICSLOAD(DFHPL1OI)
          INCLUDE CICSLOAD(DFHEPI)
          INCLUDE QMFLOAD(DSQCIPL)
          INCLUDE QMFLOAD(DSQCIPX)
          ORDER DFHPL1OI,DFHEPI
          ENTRY sampPLI
          MODE  AMODE(31) RMODE(ANY)
          NAME  sampPLI(R)
/*

Translating, compiling, and link-editing under CICS in VSE

The VSE job control in Figure 61 is an example of installing a PL/I program into CICS running on VSE. This example, provided with QMF, is located in the QMF sublibrary and is named DSQ3CIP.Z. See the CICS for VSE/ESA System Definition Guide and the PL/I VSE Programming Guide for detailed information.

Figure 61. Sample JCL for VSE
..* $$ JOB JNM=DSQ3CIP,DISP=D,CLASS=0
// JOB DSQ3CIP    Sample job to Install QMF Callable Interface (PL/I)
*  --------------------------------------------------------------------
*  Install QMF Callable Interface Example (PL/I)
*  ---------------------------------------------------------------------
// SETPARM VOLID=volid      *-- update volid for syspch
// SETPARM START=rtrk       *-- update start track/block (syspch)
// SETPARM SIZE=ntrks       *-- update number of tracks/blocks (syspch)
*  ---------------------------------------------------------------------
// DLBL   IJSYSPH,'CICS.TRANSLAT.OUTPUT',0
// EXTENT SYSPCH,,1,0,&START,&SIZE
ASSGN SYSPCH,DISK,VOL=&VOLID,SHR
*  Library search chain must contain the QMF, CICS and PL/I sublibrary
// LIBDEF *,SEARCH=(PRD2.PROD,PRD1.BASE,PRD2.CONFIG)
// LIBDEF PHASE,CATALOG=PRD2.PROD
*  --------------------------------------------------------------------
*  Step 1: Translate callable interface program (PL/I)
*  ---------------------------------------------------------------------
*  You may need to update or remove the SLI statement for your program.
*  ---------------------------------------------------------------------
// EXEC   DFHEPP1$,SIZE=256K,PARM='XOPTS(CICS)'
..* $$ SLI MEM=DSQABFP.Z,S=PRD2.PROD
/*
*  ---------------------------------------------------------------------
*  Step 2: Compile callable interface program (PL/I)
*  ---------------------------------------------------------------------
CLOSE SYSPCH,00D
// DLBL   IJSYSIN,'CICS.TRANSLAT.OUTPUT',0
// EXTENT SYSIPT
ASSGN SYSIPT,DISK,VOL=&VOLID,SHR
// OPTION NODECK,CATAL
   PHASE DSQABFP,*
         INCLUDE DFHPL1I
// EXEC PLIOPT
CLOSE SYSIPT,SYSRDR
/*
*  ---------------------------------------------------------------------
*  Step 3: Link-edit callable interface program (PL/I)
*  ---------------------------------------------------------------------
// EXEC LNKEDT,PARM='AMODE=31,RMODE=ANY'
/*
/&
// JOB  RESET
ASSGN SYSIPT,SYSRDR    IF 1A93D, CLOSE SYSIPT,SYSRDR
ASSGN SYSPCH,00D       IF 1A93D, CLOSE SYSPCH,00D
/&
..* $$ EOJ                                                        
[ Previous Page | Next Page | Contents | Index ]