Using the COBOL 5.x or COBOL 6.1 Compiler with CA Gen

Document ID : KB000030151
Last Modified Date : 14/02/2018
Show Technical Document Details

Both COBOL 5.x and COBOL 6.1 have been certified for use with CA Gen 8.5 and CA Gen 8.6.  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.1, 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.1 compared to prior versions of Enterprise COBOL.  This document will discuss the PTFs and changes necessary to use COBOL 5.x or COBOL 6.1 as the CA Gen compiler as well as document workarounds and fixes.

In order to use COBOL 6.1 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.1. 

If COBOL 5.x or COBOL 6.1 are to be used with CA Gen 8.6, no CA Gen PTFs are necessary. 

If COBOL 5.x or COBOL 6.1 are to be used with CA Gen 8.5, some CA Gen PTFs are required.  

 

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 (Note: CA GEN release 8.0 is no longer in support.)

 

The CA Gen support for COBOL 5.x or COBOL 6.1 was added in 8.5 (HE and IT) with the following PTFs:  

   RO69161, RO69163, RO69164, RO74326, RO74327, RO78374, RO80998

 

For 8.6: No PTFs are required to use either COBOL 5.x or COBOL 6.1 with CA Gen release 8.6.

However, the 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.1:

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 insure 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:

http://www-01.ibm.com/support/docview.wss?uid=swg1PI07531

- 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. 

 

http://www-01.ibm.com/support/docview.wss?uid=swg1PI25083

- 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:

TICATRMP=75

TICATRMS=75

TICAPR2P=75

TICAPR2S=75

TICAPUNP=75

TICAPUNS=75

TICACINP=75

TICACINS=75

TICALINP=180

TICALINS=60

TICACICP=105

TICACICS=35

TICADB2P=150

TICADB2S=75

TICALKDP=40

TICALKDS=8 

TICASUTP=150

TICASUTS=150

 

To this:

TICATRMP=999

TICATRMS=999

TICAPR2P=999

TICAPR2S=999

TICAPUNP=999

TICAPUNS=999

TICACINP=999

TICACINS=999

TICALINP=999

TICALINS=999

TICACICP=999

TICACICS=999

TICADB2P=999

TICADB2S=999

TICALKDP=999

TICALKDS=999

TICASUTP=999

TICASUTS=999

 

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.  

 

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:

http://www-01.ibm.com/support/knowledgecenter/SSQ2R2_9.0.1/com.ibm.ent.cbl.zos.doc/migrate/igymbhv.html