The programming interfaces

The external CICS interface provides two forms of programming interface: the EXCI CALL interface and the EXEC CICS interface.
The EXCI CALL interface
This interface consists of six commands that allow you to:
  • Allocate and open sessions to a CICS system from non-CICS programs running under MVS
  • Issue DPL requests on these sessions from the non-CICS programs
  • Close and deallocate the sessions on completion of the DPL requests.
The six EXCI commands are:
  1. Initialize_User
  2. Allocate_Pipe
  3. Open_Pipe
  4. DPL call
  5. Close_Pipe
  6. Deallocate_Pipe

The processing of an EXCI CALL-level command is shown in Figure 1.

The EXEC CICS interface
The external CICS interface provides a single, composite command–EXEC CICS LINK PROGRAM– that performs all six commands of the EXCI CALL interface in one invocation. The processing of an EXEC CICS LINK command is shown in Figure 2.

This command takes the same form as the distributed program link command of the CICS command-level application programming interface.

API restrictions for server programs

A CICS server program invoked by an external CICS interface request is restricted to the DPL subset of the CICS application programming interface. This subset (the DPL subset) of the API commands is the same as for a CICS-to-CICS server program.

For details about the DPL subset for server programs, see the Distributed Program Link (DPL).

Figure 1. External CICS interface, CALL-level API
Diagram showing the processing of an EXCI CALL-level command
Note:
  1. An EXCI CALL API request is issued, and invokes the DFHXCIS entry point in the EXCI stub, DFHXCSTB.
  2. DFHXCSTB locates DFHXCPRH, and invokes it to process the EXCI request. If DFHXCPRH is not found, DFHXCSTB loads DFHXCPRH before invoking it.
  3. DFHXCPRH sets up the control blocks needed for the EXCI request. For a DPL request, DFHXCPRH invokes DFHIRP to pass control to CICS.
Figure 2. External CICS interface, EXEC-level API
Diagram showing the processing of an EXEC CICS LINK command
Note:
  1. An EXCI EXEC API request is issued, and invokes the DFHXCEI entry point in the EXCI stub, DFHXCSTB.
  2. DFHXCSTB locates DFHXCEIP, and invokes it to process the EXCI request. If DFHXCEIP is not found, DFHXCSTB loads DFHXCEIP before invoking it.
  3. DFHXCEIP converts the EXCI EXEC-level request into a series of EXCI CALL-level requests.
  4. The CALL-level requests result in calls to the EXCI stub, DFHXCSTB (as in Figure 1).