Both COBOL 5.x and COBOL 6.1 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 above compilers
CA Gen PTFs for COBOL 5 or COBOL 6.1
The CA Gen support for COBOL 5.x was added in 8.0 (HE) with the following PTFs:
RO68840, RO68841, RO81026, RO83289 (Note: CA GEN release 8.0 is no longer in support.)
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.
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
For 8.6: No PTFs are required to use either COBOL 5.x or COBOL 6.x with CA Gen release 8.6.
However, these 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 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=V4R1M0 (for COBOL 4.1)
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.
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: