Worldwide majority of applications are on COBOL that includes domains like banking, Insurance, Retails, etc. and approximately 80% of business transactions use COBOL code. So, COBOL is everywhere and most people interact with it daily.
Migrating to COBOL v6 from COBOL v4 and other earlier versions is quite different from COBOL migrations, which we did in the last 30 to 40 years because this latest version uses a newer generation of technology.
Compiler versions/majority of our business applications used were: OS/VS Cobol, VS COBOL-II, COBOL for OS/390, Enterprise COBOL 3.x and then Enterprise COBOL 4.x. Enterprise COBOL v4.x had all the features compatible with hardware/software. It provided an option to run the older version of the application without any change/migration and run existing VS COBOL II and OS/VS COBOL load modules under Language Environment, including link-edit requirements for support.
But then from v 4 to v5.x or 6.x had a significant change in terms of architecture and software features.
The new z Architecture with new compiler versions has two major benefits:
Around 25% of customers migrating to COBOL V6 encounter migration problems as a result of COBOL programs processing invalid data at run time.
To determine if users have invalid data, the recommendation is to compile a program:
Compile with SSRANGE, NUMCHECK, PARMCHECK and OPT(O) for initial code changes and unit tests to find table misuse, invalid data use and invalid parameter usage.
OPT(0) programs are simple to debug, compiles quickly.
Look at runtime logs for NUMCHECK, etc., error messages.
Recompile with NOSSRANGE, NONUMCHECK, NOPARMCHECK and OPT(2) plus INITCHECK for quality assurance test and production
NOSSRANGE, NONUMCHECK and NOPARMCHECK are required for good performance
OPT(2) is preferred for excellent performance in production
Inspect listings for INITCHECK messages
For more details, check the link: https://www.royalcyber.com/technologies/mainframe-applications-services/