COBOL CALL vs CICS LINK
Overview
This article compares two approaches for calling programs in COBOL within a CICS environment: the standard COBOL CALL statement and the EXEC CICS LINK command.
Program State Management
- CALL: A called program retains its final state after execution, so subsequent calls find it in that previous condition
- LINK: Programs always initialize to their original state when invoked through CICS LINK
Debugging Considerations
- CALLed programs use GOBACK rather than EXEC CICS RETURN — this does not create a CICS trace entry and complicates troubleshooting
- CALL operations appear in CICS traces only through locate operations, lacking explicit LINK trace entries
- CEDF/CEDX debugging tools don't display EXEC CICS LINK screens, making program transitions harder to identify
Program Hierarchy and Remote Capabilities
- CALL doesn't change logical program levels
- CALLed programs cannot execute remotely or through Distributed Program Link (DPL)
- In a non-LE environment, COBOL CALL can only CALL other COBOL or ASSEMBLER programs
Administrative Visibility
Both approaches generate Program definition entries (PPTTE) visible in CEMT and statistics reporting.
Performance Trade-offs
COBOL CALL executes faster and consumes less storage, but only when programs are called more than twice.