search cancel

Gen z/OS applications mixing COBOL versions V4 and V6 in phased upgrade


Article ID: 199230


Updated On:


Gen Gen - Run Time Distributed


For a phased approach to upgrading CA Gen z/OS applications from Gen 8.5 to Gen 8.6 where some modules will remain at 8.5/COBOL V4 during the transition phase to 8.6/COBOL V6.
Is there any known issue or contention with mixing Gen server versions which will be using different versions of COBOL?


Release : 8.6
Component : CA Gen Host Construction


In general, a COBOL 4 DLL can call a COBOL 6 DLL successfully and vice-versa. What may cause a problem is if a DLL is made up of some routines compiled with COBOL 4 and some compiled with COBOL 6 (or 5). However, that is not applicable for Gen generated/compiled code calling Gen runtimes where each generated module is a DLL compiled with one compiler version.
Thus there should be no issues having a mixture of Gen 8.5 server modules (compiled with COBOL 4) and Gen 8.6 server modules (compiled with COBOL 6). That advice is also based on the assumption that the Gen 8.6 runtimes are used for all modules because 8.6 runtimes are required for Gen 8.6 and are backwards compatible with 8.5. That is covered in the Gen 8.6 documentation section "DLLs, Compatibility and Application Migration in HE":
Changes Made in CA Gen 8.6 that Impact Migration
CA Gen 8.6 GA COBOL runtimes are compiled with Enterprise COBOL V5.1.1 and require Language Environment runtime support for COBOL V5. Gen 8.6 Upgrade PTFs LU01883-LU01889 and LU01908 deliver COBOL runtimes compiled with Enterprise COBOL V6.2 and require LE runtime support for COBOL V6.2.   However CA Gen-generated applications previously built using a supported version of Enterprise COBOL do not need to be rebuilt to be able to use CA Gen 8.6 COBOL runtimes. Because of backwards compatibility and LE runtime support for multiple versions of language compilers, CA Gen applications will continue to work with existing or rebuilt CA Gen 8.6 runtime. CA Gen-generated applications and runtime DLLs must reside in the PDSE libraries.
Migrating from CA Gen 8.5
The CA Gen 8.6 z/OS Runtime DLLs must be deployed to the target execution environment and must supersede the CA Gen 8.5 Runtimes. LE must contain runtime support for COBOL V5. CA Gen 8.6 generated applications and runtime DLLs must reside in the PDSE libraries.
To use COBOL V6, LE Support for COBOL V6 which supersedes the above advice for COBOL V5 and is covered in this KB article:
Using CA Gen with the COBOL V5 or COBOL V6 Compiler