Distributed program link (DPL) enables an application program in a local CICS® system to issue an EXEC CICS LINK command to link to a program in a remote CICS system, which returns control to the calling program.
CICS on System/390® supports both inbound and outbound DPL with all current non-System/390 CICS systems.
Distributed program link:
In CICS on System/390, the linked program runs under the mirror transaction, using that transaction’s attributes, for example, task priority, security attributes, and keys.
A CICS program linked by a program in a remote CICS system cannot issue:
A DPL server program on CICS on System/390 terminates with transaction abend code ADPL if it issues one of the restricted commands listed above.
A CICS program linked by a program in a remote CICS system can issue commands that address the TWA or the TCTUA. However, if the linked-to program addresses the TWA it is given access to the TWA of the local transaction. If it addresses the TCTUA a null pointer is returned.
When DB2® data is accessed from CICS Transaction Server for Windows, CICS 400®, or CICS on Open Systems, security access is based on the TRANSID passed to the System/390 mirror transaction.
The System/390 EIBTRNID field is set to the transaction ID passed by the remote CICS system, and this is used for the duration of the link. This mechanism allows greater selectivity for DB2 plans.
If the linked CICS program terminates abnormally and doesn’t handle the abend itself, the mirror program returns an abend code. The code returned is that which would have been returned by an ASSIGN ABCODE command. Note that the abend code returned to the linking CICS system is the last abend to occur in the mirror program, which may have handled other abends before terminating.
The performance of DPL may be affected by the amount of data transmitted, which includes the optional COMMAREA specified on an EXEC CICS LINK command. For communication between all CICS servers, the recommended maximum length of a communications area is 32500 bytes.
CICS on System/390 and the other CICS products contain algorithms designed to reduce the number of bytes to be transmitted. The algorithms remove some trailing binary zeros from the COMMAREA before transmission and restore them after transmission. The operation of these algorithms is transparent to the application programs, which always see the full-size COMMAREA.
When transmission time accounts for a significant part of the response time at a user terminal or workstation, application programs may be able to improve performance by using the DATALENGTH parameter in the LINK command. This parameter specifies a contiguous area of storage, at the start of the COMMAREA, to be passed to the invoked program. For example, if all the data to be transmitted is grouped in the first 100 bytes of a 30 000-byte COMMAREA, and DATALENGTH(100) is specified, only the first 100 bytes are transmitted.
CICS Transaction Server for OS/390 Release 3 and CICS Transaction Server for z/OS allow you to route DPL requests dynamically. In these products, if a program defined as DYNAMIC is the subject of an EXEC CICS LINK command, the CICS dynamic routing program is invoked, and can select a remote region on which the program is to execute.
CICS TS for OS/390 Release 3 and later can dynamically route:
For definitive information about how to route program-link requests dynamically, see your Intercommunication Guide.