Design Overview

The CICS® code that processes external call interface (ECI) requests that arrive from a TCP/IP network via the Sockets Domain (SO) is mostly contained within the IP ECI (IE) domain. Some code that is logically part of the function runs in AP domain. This is because SO domain works by attaching a listener task (CIEP for IPECI) to handle incoming data, and IE domain attaches a mirror task (CPMI) to issue the program link request and return any resulting output.

There are five logically separate pieces of code for this function:

Listener task, CIEP

The CIEP task is attached by SO domain when it receives data on the port specified in the IPECI TCPIPSERVICE. The CIEP transaction handles control flows directly, or attaches a mirror task to issue the ECI program link request.

The valid flows that may be received by CIEP are:

All other flows are rejected by CIEP; conversation errors with an FMH7, control errors by closing the socket.

The different flows are distinguished by testing various fields in the flow headers, including the SNA format RH.

Request header settings

Response headers are never sent. All flows have request headers. Errors are returned by sending FMH7 with CEB.

All flows are OIC,RQE1.

The link requests to a long running mirror are packaged as FMH43s but, because they are within a GDS, should not cause the RH FMH bit to be set on.

Direction Type of flow Request header flags
in CCIN INSTALL FMH5 BB OIC CD RQE1 FMH
out CCIN INSTALL reply CEB OIC RQE1
in CCIN UNINSTALL request BB CEB OIC RQE1 FMH
in Mirror FMH5 + link request BB OIC CD RQE1 FMH
out Non long-running mirror link reply CEB OIC RQE1
out Long-running mirror link reply OIC CD RQE1
in Long-running mirror link request OIC CD RQE1
in Long-running mirror sync flow OIC CD RQE1
out Long-running mirror sync reply CEB OIC RQE1
out Conversation failure (FMH7) CEB OIC RQE1 FMH
in FMH7 CEB OIC RQE1 FMH

Mirror task, CPMI

A mirror task is attached by the listener task to handle a particular client conversation. The transaction attach callback module for IE mirrors is DFHIEXM. It sets the IECCB (IP ECI Conversation Control Block) to be the mirror task's facility token and establishes security context for the mirror task, using userid and password sent from the client where required.

The mirror task main program, DFHMIRS, issues the IEIE RECEIVE for the available data, and then performs the same functions as it does for ECI requests received in other environments. It then issues the IEIE SEND to return the output from the linked program to the client. For a conversation marked by the client as 'extended', the mirror then issues another IEIE RECEIVE which causes it to be suspended, waiting for more data. For a non-extended conversation, the mirror terminates after the SEND.

PING

CICS TS 2.2 supports full connection and conversation level PING as architected for the CICS family. This consists of defined flows to allow CICS to determine whether specified connections, or particular conversations on a connection, should still be considered active. CICS TS sends a PING request if the RTIMOUT interval is exceeded when waiting for data from a client:

Notes

  1. The socket is full duplex, so SENDs and RECEIVEs can be issued in any order, and asynchronously by different CICS tasks. This is necessary for multiple conversations on the same socket, and means that the CIEP task can issue a SOCK RECEIVE as soon as it has attached the mirror. The SOCK SEND will be done under the mirror task.
  2. Sending tasks ENQ on the socket to prevent the data from multiple conversations being interleaved. The ENQ is issued by SO domain.
  3. The SO socket token is the second part of the user token but is never required in the CIEP task. The sends and receives issued from CIEP use the socket implicit in the task's state.
  4. If the connection is lost or closed by TCP/IP and there are long running mirrors waiting on receives, SO domain is notified, attaches CIEP and returns a bad response on the SO receive issued by CIEP.

Modules

DFHIEP
The initial program for the IP ECI listener transaction, CIEP.
DFHIEXM
The IPECI mirror transaction attach callback module.

Sets the IECCB to be the mirror task's facility token.

Establishes security context for the mirror task, using userid and password sent from client where required.

[[ Contents Previous Page | Next Page Index ]]