Overview of function shipping

You can use CICS® function shipping to enable CICS application programs to perform the following tasks.

  • Access CICS files owned by other CICS systems by shipping file control requests.
  • Access DL/I databases managed by or accessible to other CICS systems by shipping requests for DL/I functions.
  • Transfer data to or from transient data and temporary storage queues in other CICS systems by shipping requests for transient data and temporary storage functions.
  • Initiate transactions in other CICS systems, or other non-CICS systems that implement SNA LU Type 6 protocols, such as IMS, by shipping interval control START requests. This form of communication is described in Asynchronous processing.

You can write applications without regard to the location of the requested resources. They use file control commands, temporary-storage commands, and other functions in the same way. Entries in the CICS resource definition tables allow the system programmer to specify that the named resource is not on the local (or requesting) system but on a remote (or owning) system.

An illustration of a shipped file control request is given in Figure 1. In this figure, a transaction running in CICA issues a file control READ command against a file called NAMES. The resource definition for the file indicates that this file is owned by a remote CICS system called CICB. CICS changes the READ request into a suitable transmission format and then ships it to CICB for execution.

In CICB, the request is passed to a special transaction known as the mirror transaction. The mirror transaction re-creates the original request, issues it on CICB, and returns the acquired data to CICA.

CICS recovery and restart enables resources in remote systems to be updated, and ensures that, when the requesting application program reaches a synchronization point, any mirror transactions that are updating protected resources also take a synchronization point, so that changes to protected resources in remote and local systems are consistent. The CICS main terminal operator is notified of any failures in this process, so that suitable corrective action can be taken. This action can be taken manually or by user-written code.
Figure 1. Function shipping
The picture shows two CICS systems, CICA and CICB, which are connected by an IPIC, ISC, or MRO link. On CICA, the definition of a file called “NAMES” specifies REMOTESYSTEM(CICB). On CICB, “NAMES” is defined as a local file. A program on CICA issues an EXEC CICS READ FILE(NAMES) command. CICA sees that “NAMES” is owned by CICB and ships the request to CICB. In CICB, the mirror transaction is attached. The mirror issues the READ command against “NAMES” and passes the retrieved data back to the program on CICA.