COBOL application developer tasks

These upgrade tasks are typically completed by COBOL application developers. These tasks include setting default compiler options, regression testing, checking for invalid data, and fixing the problems.

Set default compiler options

Tip: IBM COBOL Upgrade Advisor for z/OS® outlines compiler option recommendations to tell you exactly what options need to be added, changed, or removed for your compiler version. If you are using COBOL Upgrade Advisor for z/OS, follow the steps there to complete this task.
Set the default compiler options in IBM Enterprise COBOL for z/OS 6.4 to be compatible with previous COBOL compilers. This involves copying IGYCDOPT source from SIGYSAMP, setting the options, and then assembling the modified IGYCDOPT.

The most important options to set the same as previous compilers are:

  • ADV
  • AWO
  • DYNAM
  • NUMPROC (other than changing from NUMPROC(MIG) to NUMPROC(NOPFD))
  • TRUNC

You should also:

  1. Set up your source library control system compiler options for the new compiler to be compatible with the old compiler(s).
  2. Document all customization and setups performed for future reference.

Regression testing and invalid data

You can get different results with IBM Enterprise COBOL for z/OS 6.4 compared to previous compilers if your programs process "invalid COBOL data" or you have "invalid COBOL programs", where run time data values or programs do not conform to the rules in the Enterprise COBOL Language Reference manual.

To determine if your programs process invalid COBOL data at run time, or have mismatched parameters at run time, compile your programs with the following compiler options, and run regression tests:
  • NUMCHECK
  • PARMCHECK
  • SSRANGE
  • INITCHECK
  • OPT(0)
If you do not get any SSRANGE, NUMCHECK, PARMCHECK, or INITCHECK errors, and you are sure that you get the same results with the new compiler as with earlier compilers, recompile with the following compiler options:
  • NOSSRANGE
  • NONUMCHECK
  • NOPARMCHECK
  • OPT(2)
Once this is complete, run a final test and move the application into production.

It is important to test with each of SSRANGE, NUMCHCEK, and PARMCHECK because some users have found different invalid data results with Enterprise COBOL 6. INITCHECK is also important because it can find uninitialized data at compiler time which can also cause upgrade problems.

If you have not found any SSRANGE, NUMCHECK, PARMCHECK, or INITCHECK errors after a period of time, then you may consider skipping this step for future upgrades, as you may not have any invalid data usage. Additionally, this step is only recommended for the first time that a program is compiled with Enterprise COBOL 6. Once you have compiled a program with Enterprise COBOL 6, you can skip regression testing with SSRANGE, NUMCHECK, PARMCHECK, or INITCHECK for future compiles.