Chapter Contents

Previous

Next
Preprocessing, Compiling, and Linking

Using the External CICS Interface

The CICS translator now supports the external CICS interface. By using this feature, a non CICS program running on OS/390 can call a CICS program running in a CICS region. This is sometimes referred to as a Distributed Program Link (DPL). You can use one of two programming interfaces to enable the external CICS interface:

Consult the CICS/ESA External CICS Interface Manual for more information on the EXCI CALL interface.


The EXEC CICS Interface

You invoke the EXEC CICS interface by using new options in the EXEC CICS LINK PROGRAM command: RETCODE(data-area) , and APPLID(name) . These options are valid only when you specify the external call interface option.

When you specify the external call interface, the following options for the EXEC CICS LINK PROGRAM command are not valid:

INPUTMSG(data-area)
INPUTMSGLEN(data-value)
SYSID(data-area)


Running your CICS Application with the External CICS Interface

The following three steps are required to run your CICS application with the external CICS interface:

  1. The CICS command translator must translate your program.

  2. You must compile the program with SAS/C.

  3. You must link-edit the program on OS/390.

Note:    Your program must be linked with the standard resident library, STDOBJ, rather than the CICS library.  [cautionend]


Translating, Compiling, and Linking under OS/390

Use the EXCI option to specify the external call interface on OS/390. To resolve the external CICS interface stub when linking, you must specify the CICS41.SDFHEXCI library. Ask your CICS system administrator for the exact name of the SDFHEXCI data set at your site.

Note:    You can use this feature of the CICS command translator in the UNIX environment. See SAS/C Cross-Platform Compiler and C++ Development System User's Guide for details.  [cautionend]

Using TSO

To translate the program, run the LCCCP CLIST:

LCCCP 'your.ccpinput.ccp(member)' OUTPUT('''ccp.output.c(member)''')
       EXCI

Next, compile the program:

LC370 'ccp.output.c(member)' OBJECT('''ccp.output.load(member)''')
       RENT

Link the program:

COOL 'ccp.output.obj(member)' LOADLIB('''CICS41.SDFHEXCI''')
      LOAD('''ccp.output.load(member)''') LET

To execute the program under TSO, you must allocate the CICS41.SDFHEXCI library in one of the following ways:


Method 1
ALLOC FILE(ISPLLIB) DATASET('CICS41.SDFHEXCI') SHR

To run the program using Method 1, type the following:

CALL 'ccp.output.load(member)'


Method 2
ALLOC FILE(CPLIB) DATASET('ccp.output.load' 'CICS41.SDFHEXCI') SHR

To run the program using Method 2, type the following:

member


Using OS/390 Batch

You can use one of three procedures (LCCCP, LCCCPC, or LCCCPCL) to invoke the CICS translator. If you use either LCCCP or LCCCPC when translating for the external CICS interface, you can invoke the linker separately and specify the correct libraries.

For example, to translate and compile the program, run the LCCCPC procedure:

//           EXEC LCCCPC,PARM.CCP='EXCI'
//SYSPUNCH DD DISP=SHR,DSN=your.object.library(member)
//SYSIN    DD DISP=SHR,DSN=your.source.library(member)

Then link and execute the program:

//STEP1    EXEC LC370LRG
//LKED.SYSLMOD DD DISP=SHR,DSN=your.load.lib(member)
//LKED.SYSIN   DD DISP=SHR,DSN=your.object.lib(member)
//LKED.SYSLDLIB DD DISP=SHR,DSN=CICS41.SDFHEXCI
//GO.STEPLIB DD
//         DD DISP=SHR,DSNAME=CICS41.SDFHEXCI


Translating, Compiling, and Linking under CMS

Use the EXCI option to specify the external call interface on CMS. First, translate the program using the LCCCP EXEC:

LCCCP filename (filetype (filemode)) (EXCI

Next, compile the program:

LC370 filename (filetype (filemode)) (RENT

Finally, the object must be moved to OS/390 to execute the link step. This step is illustrated in Translating, Compiling, and Linking under OS/390.


Chapter Contents

Previous

Next

Top of Page

Copyright © 2001 by SAS Institute Inc., Cary, NC, USA. All rights reserved.