Both COBOL 5.x and COBOL 6.x have been certified for use with CA Gen 8.5 and CA Gen 8.6 Host Encyclopedia (HE) and Implementation Toolset (IT). This document explains the requirements to use each COBOL version with each CA Gen release.
Note that after upgrading the CA Gen COBOL compiler library to COBOL 5.x or COBOL 6.x, customers experienced compile problems such as insufficient region and/or insufficient temporary dataset sizes. These problems are a result of the increase of compile-time storage requirements in COBOL 5.x and COBOL 6.x compared to prior versions of Enterprise COBOL. This document will discuss the PTFs and changes necessary to use COBOL 5.x or COBOL 6.x as the CA Gen compiler as well as document workarounds and fixes.
In order to use COBOL 6.x with either CA Gen 8.5 or CA Gen 8.6, you will need to apply the IBM PTFs for Language Environment to support COBOL 6.x.
If COBOL 5.x or COBOL 6.x are to be used with CA Gen 8.6, no CA Gen PTFs are necessary.
If COBOL 5.x or COBOL 6.x are to be used with CA Gen 8.5, some CA Gen PTFs are required.
CA Gen 8.x
IBM COBOL 5.x and COBOL 6.x compilers
CA Gen PTFs for COBOL 5 or COBOL 6.x
The CA Gen support for COBOL 5.x was added in 8.0 (HE) with the following PTFs:
RO68840, RO68841, RO81026, RO83289
NOTE: There is no support for the 8.0 IT with COBOL 5.x and above. The 8.0 IT supports COBOL 4.2 and versions below.
NOTE: CA GEN release 8.0 has reached End Of Service and is no longer supported.
The CA Gen support for COBOL 5.x or COBOL 6.x was added in 8.5 (HE and IT) with the following PTFs:
RO69161, RO69163, RO69164, RO74326, RO74327, RO78374, RO80998, RO83428
NOTE: CA GEN release 8.5 has reached End Of Service and is no longer supported.
For 8.6: No PTFs are required to use either COBOL 5.x or COBOL 6.x with CA Gen release 8.6.
GEN does not have any enhancements that would benefit from using COBOL v6.3 AMODE 64. GEN 8.6 GA Runtime was built with COBOL v5.1.1 while Upgrade PTFs LU01883-LU01889 and LU01908 recompile Gen Runtime using COBOL v6.2 and only uses 31-bit.
However, the following changes must still be made to update the TIRC2LIB and TIRC2VER values.
Steps needed for CA Gen 8.0, 8.5, and 8.6 with COBOL 5.x or COBOL 6.x:
1. Locate your TIUPARML dataset
2. Edit member TIRHE for Host Encyclopedia, and/or TIRIT for the IT.
3. Repeat the following steps for each member you edit.
4. Locate the line that contains TIRC2LIB= parm pointing to your COBOL compiler library name.
5. Insert the following line, replacing x,y, and z as noted.
TIRC2VER=VxRyMz where x= compiler version, y= compiler release, and z= compiler mod -typically 0.
Examples: TIRC2VER=V5R1M0 (for COBOL 5.1)
TIRC2VER=V4R2M0 (for COBOL 4.2)
TIRC2VER=V6R1M0 (for COBOL 6.1 in CA GEN releases 8.5/8.6)
Please ensure that the statement begins in column 1 of the inserted line.
Note that the Examples above are just to show how to code the parameter. The values used do not mean that these versions are supported. Refer to Tech Docs for supported versions.
6. This will allow host construction to select the correct configuration for your COBOL compiler version.
7. You must perform this update before using host construction with the new COBOL release, regardless of your compiler level.
IBM COBOL 5.x
Please note that IBM has published the following APARS which relate to COBOL 5.x Memory or CPU consumption:
- A large program is unable to complete compiling.
- No amount of adjusting options OPT, MAXPCF, SIZE, NOXREF or job statement's REGION helps.
- Sometimes many warnings are seen prior to the IGYCB7145-U insufficient memory in the compiler to continue compilation.
- Other times only a short list of the compile options are seen.
- Version 5 CPU usage for problem using opt(2) increased by over 30 times compared with Version 4 using OPT(FULL).
Missing TIRC2VER parameter error
If the TIRC2VER parameter is missing from the TIRHE or TIRIT parmlib member, a compile of the RI Triggers will receive the following error:
IF &SUBSTR(2,) LE 4 THEN
IKJ56545I THIS STATEMENT HAS AN INVALID &SUBSTR RANGE OR EXIT CODE EXPRESSION
And a compile of the application code will receive the following error:
***** INTERNAL ERROR ******
PRESS ENTER KEY TO CONTINUE.
After this error, the <userid>..IEF.TISYSPRT will show the following:
TICIBLD: vget failed for TIRC2VER. RC = 84
IGYPG5062-U and IGYCB7145-U compile errors
Both IGYPG5062-U and IGYCB7145-U compile errors have been experienced after upgrading to COBOL 5.
To resolve these, look at the compiler SIZE parameter (TIRCBLSZ) in the TIRHE or TIRIT PARMLIB member as well as the TSO region.
If no value is specified, the Gen default for COBOL 5.1 compiler SIZE parameter (TIRCBLSZ) is SZ(8192K).
The SIZE parameter for COBOL 5.2 parameter is listed in the Invocation Parameters, but it is ignored and you will receive the following warning:
IGYOS4013-I The "SZ" option is no longer supported.
It is recommended to use this default for TIRCBLSZ unless getting an IGYPG5062-U error. If this error occurs, try to find a TIRCBLSZ value that allows all phases of the compiler to execute. Avoid setting this value higher than necessary since this can lead to the IGYCB7145-U error by depriving the later phases of the compiler of the memory they need. The compiler requires a minimum of 200M REGION size to run, so it is possible that enough REGION is not acquired to run all phases of the compiler. If the IGYCB7145-U error is received, increase the TSO region (for foreground compiles) or set the REGION=0M for batch compiles.
Note that depending upon your site’s logon parameters, you may not acquire the requested region. Verify that you are acquiring the requested region. Look at your TSO session for the requested region. If you were not able to acquire the requested region, you may get a warning similar to:
WARNING - REGION ATTEMPTED IS GREATER THAN PRIVATE AREA
Errors due to insufficient temporary dataset sizes
Compile errors may also occur due to insufficient temporary dataset sizes.
If a background compile error similar to the following is received:
IEC030I B37-04,IFG0554A,KV13536C,STEP1,TICCIN,E728,DW0062, 562
then try adding this line in the batch jcl: //TICCIN DD SPACE=(CYL,(99,10),RLSE)
It is also possible that temporary dataset allocations may need to be increased. If this is the case, update PARMLIB member TIUHE Primary and Secondary allocations.
Change the settings from this:
Problem when using Fault Analyzer
There are a couple of outstanding problems that occur after applying the CA Gen COBOL 5 PTFs.
The first problem occurs when attempting to use Fault Analyzer. In the Gen COBOL 5 PTFs, the CA Gen program TICCMPD was changed to start using the IBM COBOL 5 compiler ddname list. The SYSDEBUG ddname is no longer used by the IBM COBOL 5 compiler, therefore the SYSDEBUG ddname is no longer available in our TICCMPD program. This causes a problem when customers attempt to use Fault Analyzer since it uses the SYSDEBUG ddname when compiling COBOL code. If the customer is still using the COBOL 4.x compiler and still needs to use Fault Analyzer, then they can revert back to using the GA version of our TICCMPD program. This will allow them to access the SYSDEBUG ddname and continue using Fault Analyzer. If the customer does not still have the GA version of TICCMPD available, they can request a copy from CA and we will send it to them (in TSO XMIT format).
PTFs required to use CLIST TIUDEBUG
In order to use CLIST TIUDEBUG, the following PTFs must be applied:
Gen 8.0: PTF RO81026
Gen 8.5: PTF RO80998
Gen 8.6: No PTFs required to date.
Without these PTFs for CA Gen releases 8.0/8.5, the following S806 abend will occur:
CSV003I REQUESTED MODULE TICCMPTV NOT FOUND
CSV028I ABEND806-04 JOBNAME=CGIEF#GN STEPNAME=STEP1
IEA995I SYMPTOM DUMP OUTPUT 731
SYSTEM COMPLETION CODE=806 REASON CODE=00000004
This abend occurs whether the customer is using the COBOL 5.x, COBOL 4.x or any earlier COBOL compiler.
PTFs to address increased memory use when Compatibility (CMP) modules are compiled with COBOL 5
Gen 8.0: PTF RO83289
Gen 8.5: PTF RO83428
Gen 8.6: No PTFs required to date.
IBM Documentation for COBOL 5 changes
For information regarding the COBOL 5 changes please reference “Changes in compiling with Enterprise COBOL Version 5.1” which is in IBM’s Enterprise Cobol for z/OS Migration Guide Version 5.1.1: https://publibfp.dhe.ibm.com/epubs/pdf/igy5mg11.pdf
1. For current supported COBOL versions with Gen 8.6 please see Gen™ 8.6 > Technical Requirements > Third-Party Software Version which itself references the Gen Compatibility Matrix
2. NOTE: Gen 8.6 PTFs LU01883-LU01889 and LU01908 ("UPGRADE C, C++, COBOL AND DB2 FOR GENERATORS AND RUNTIMES") provide new versions of Gen generators and runtimes that were built with COBOL 6.2. However, to use the Gen 8.6 supported COBOL 6.x it is not a requirement to install those PTFs to use those runtimes or even to regenerate applications if they are applied. That is because of backward compatibility and LE runtime support for multiple versions of language compilers.
The statement on this page covers it in more detail: Host Encyclopedia Construction > DLLs, Compatibility, and Application Migration in HE
Changes Made in Gen 8.6 that Impact Migration
This section contains information that enables applications to migrate to Gen 8.6. Some of these Gen applications may have been built by Gen releases that are no longer supported. This information is intended to move these applications to a supported release and in no way implies a change in Support Policy.
Gen 8.6 GA created runtime DBRMs using Db2 V11. Gen 8.6 Upgrade PTFs (LU01883-LU01889 and LU01908) use Db2 V12 to create DBRMs. RPROF runtime is affected by this change.
Gen 8.6 GA COBOL runtime is compiled with Enterprise COBOL V5.1.1 and requires Language Environment runtime support for COBOL V5. Gen 8.6 Upgrade PTFs deliver Gen runtime that is compiled with COBOL V6.2 and requires LE runtime support for COBOL V6.2. However Gen generated applications that are previously built using a supported version of Enterprise COBOL do not need to be rebuilt to be able to use Gen 8.6 COBOL runtime. Because of backwards compatibility and LE runtime support for multiple versions of language compilers, Gen applications continue to work with existing or rebuilt Gen 8.6 runtime. Gen generated applications and runtime DLLs must reside in the PDSE libraries.