CICS provides different programming interfaces to invoke another CICS program or to allow a program to be invoked by another CICS program. Two of these facilities are important here.
DTP (Distributed Transaction Processing) which enables a CICS transaction to communicate with a CICS application running in another system by exchanging messages. DTP programs are coded using the APPC programming interface.
DPL (Distributed Program Link) which enables a CICS program to invoke a program in another CICS system and wait for the called program to return. Data is exchanged between the programs in a communication area (
COMMAREA
). DPL is similar to a remote procedure call.
BeanConnect makes it possible to invoke outbound transactions via DTP. However, it is not possible to call a DPL program directly. For this, a DTP program is needed in which the program link is wrapped.
A DPL program is called with the CICS LINK
command, which has three important parameters:
PROGRAM
to specify the name of the program to which control is to be passed unconditionallyCOMMAREA
to specify the communication area that is made available to the linked programLENGTH
which specifies the length in bytes of the communication area.
The input data for the distributed program call is received in a message. The input data must be copied to the communication area. The required output data has to be sent as response to the EJB when the linked program returns.