Modules

Figure 65 gives an overview of the modules involved with interregion communication.

Figure 65. Interregion communication
 This figure shows an overview of the modules involved with interregion communication, as described in the text below.

The modules for IRC are of two types:

  1. The interregion communication programs: DFHIRP and DFHXMP.
  2. CICS® address space modules: DFHCRC (interregion ESTAE exit), DFHCRNP (CICS interregion connection manager), DFHCRR (interregion session recovery), DFHCRSP (CICS interregion communication startup module), DFHZCP (CICS terminal management program), and DFHZCX (which includes DFHZIS2, the interregion service subroutines).

Interregion programs

DFHIRP (interregion communication (SVC) program)

The interregion communication program (DFHIRP) is used to pass data from one region to another in the same processing unit. The programs running in the regions usually are CICS programs, but DFHIRP does not assume that to be the case.

Each user of this program must first issue a LOGON request specifying an 8-character name. This user identifier is added to a table maintained in key 0 storage.

After the user has logged on, CONNECT requests may be issued to establish data paths to other users who have also logged on. The users must cooperate in this process by specifying, when they log on, to whom and from whom they are to be connected and by how many data paths.

After a connection has been established, either end of the connection may issue a SWITCH request to send data to the other end of the connection. The receiver of the data must provide a buffer into which the data is to be written. If the buffer is too small, the receiver is notified of the actual data length and, possibly having obtained a larger buffer, may issue a PULL request to retrieve as much data as is required. After the first data has been sent, the link must be used by each end alternately.

A connection may be broken by either end by issuing a DISCONNECT request. When all links have been disconnected, a user may log off.

When MVS™ cross-memory services are requested (ACCESSMETHOD(XM) in the RDO CONNECTION definition), DFHXMP is used (DFHIRP performs initialization and termination for DFHXMP); otherwise, communication is performed by DFHIRP running as an SVC. In this case, it is invoked by an SVC call to a startup program (DFHCSVC), which calls the required DFHIRP routine.

DFHXMP (MVS cross-memory program)

When the MVS cross-memory services are used for interregion communication, the SWITCH and PULL functions are performed by DFHXMP, which is entered by issuing a program call (PC) instruction instead of an SVC. DFHXMP does not need a commonly addressable buffer or service request blocks (SRBs) to effect data transfer between address spaces.

Code in DFHIRP performs the cross-memory initialization and termination functions for DFHXMP as follows:

LOGON

Acquire and initialize the cross-memory resources (authorization index (AX), linkage index (LX), and entry table (ET)), unless this has already been done by a previous logon in this address space.

CONNECT

Update the authority tables (ATs) of both address spaces to allow each one to establish addressability to the other, unless this was done when a previous connection was established between them.

DISCONNECT

If the last cross-memory connection between a pair of address spaces is being removed, update the caller’s AT so that the other system is no longer permitted to access the caller’s address space.

LOGOFF

Free the cross-memory resources acquired by logon if they are no longer required by the caller’s address space.

CICS address space modules

The CICS address space modules control the handling of requests between this address space and other address spaces. They include several MRO management modules such as DFHCRSP (see DFHCRSP (CICS IRC startup module)) and DFHCRNP (see DFHCRNP (connection manager--CSNC transaction)), and several terminal-control modules (see DFHZCX (CICS terminal control routines)).

These modules provide the CICS address space with a DFHTC-level interface to interregion communication (in the same way as DFHZCP provides a DFHTC-level interface to VTAM®). This enables other CICS modules (such as DFHISP) to allocate and execute input/output operations on IRC sessions. The IRC sessions are used for all forms of IRC communication, and the macro-level services available for IRC are broadly the same. Thus DFHISP works for both IRC and intersystem communication (ISC) function shipping.

The functions of each module are as follows:

DFHCRSP (CICS IRC startup module)

Execution of this module makes interregion communication possible between this address space and other address spaces. DFHCRSP, which can be invoked either at system initialization or by the master terminal, allocates the cross-region block (CRB), issues a LOGON request to the SVC routine, and attaches the CSNC transaction (connection manager program, DFHCRNP).

DFHCRNP (connection manager--CSNC transaction)

Interregion communication is controlled by the interregion control program, DFHCRNP, which runs as transaction CSNC. This is attached when CICS first logs on to the interregion program, and it remains attached until interregion communication is closed.

The main purpose of CSNC is to perform housekeeping and control on IRC sessions, and to simulate the access method. Its functions include the following:

  1. Establish connections to other address spaces (by issuing CONNECT requests)
  2. Detect unsolicited input data on connections and attach requested tasks to process such data
  3. Disconnect unallocated (between-bracket) sessions during QUIESCE
  4. Issue DFHKC AVAIL for any secondary sessions which have become available for reallocation, and are in demand
  5. Issue PC RETURN when QUIESCE is complete.

CSNC is attached by DFHCRSP (IRC startup), and waits when it is not processing work. It is resumed by the dispatcher when the MRO work queue ECB has been posted, or the delay interval (if set) has expired and there is delayed work to be retried.

Whenever CSNC is posted, it checks first whether it has been invoked because quiescing of the interregion facility is complete.

DFHCRR (CICS session recovery module)

Whenever a new connection is established (via a successful CONNECT request), DFHCRNP links to DFHCRR at the secondary end of the connection (that is, at the source of the connection). DFHCRNP sends a data stream down to the other end of the connection (the primary end) which causes DFHCRNP to link to DFHCRR at the primary end. The two DFHCRRs exchange information in order to determine whether either end of the connection was in doubt when the previous use of the connection was terminated, and, if so, whether the two ends were in sync or out of sync. In the case of an in-doubt connection, the sequence numbers are compared, diagnostics are issued, and the session is freed.

DFHCRC (interregion abnormal exit module)

This module contains the ESTAE exit routine corresponding to the ESTAE macro issued by DFHKESIP. It is invoked if the ESTAE exit, DFHKESTX, decides to continue the abend, or if an X22 abend (which can’t be handled by DFHKESTX) occurs.

The purpose of the exit is to free links with other subsystems to which connection has been made by the interregion SVC, and to free links with the SVC itself. This is done by issuing to the SVC a CLEAR request (to break links with other subsystems).

DFHZCX (CICS terminal control routines)

DFHZCX is a load module consisting of a set of object modules, including DFHZIS1 (ISC or IRC syncpoint) and DFHZIS2 (IRC internal functions).

DFHZIS2 provides the following routines:

I/O request routine (IORENT)
Provides a WRITE/WAIT/READ interface to interregion connections.
GETDATA routine (GDAENT)
Retrieves input data from an IRC connection and puts it into a TIOA.
RECEIVE routine (RECENT)
Receives unsolicited data (begin-bracket in SNA terms) and checks validity.
DISCONNECT routine (DSCENT)
Cleans up this end of a connection, and issues DISCONNECT request to DFHIRP.
OPRENT routine (OPRENT)
Issues an INSRV request to DFHIRP, in order to allow future connections between this subsystem and a specified subsystem.
RECABRT routine (RCAENT)
Is invoked when an ABORT FMH (FMH07) is received (indicating that the connected transaction has abended). The routine issues a message describing the failure.
STOP routine (STPENT)
Is invoked when communication with other address spaces is to be terminated. The routine issues a QUIESCE request to DFHIRP.
LOGOFF routine (LGFENT)
Is invoked when quiesce is complete (and during system termination and abend processing). The routine issues a LOGOFF request to the SVC routine.

DFHZIS1 also contains routines representing terminal control services which are supported by IRC (in common with VTAM). These routines include PREPARE, SPR, COMMIT, and ABORT.

DFHZCP (CICS terminal management program)

DFHZCP is a load module consisting of a set of object modules, including DFHZARQ (application request handler), DFHZISP (intersystem program allocation routines), and DFHZSUP (startup task).

DFHZARQ is used (in common with all other telecommunication access methods) to handle WRITE/WAIT/READ-level requests against IRC connections (sessions). Routine ZARQIRC in DFHZARQ specifically handles IRC requests by performing SNA request header processing and invoking IORENT (see DFHZCX) in order to perform the I/O on the session.

DFHZISP includes routines such as ALLOCATE and FREE.

[[ Contents Previous Page | Next Page Index ]]