Before migration

Questions frequently asked before migration and their answers are listed as follows:

What does COBOL migration refer to?

From a licensing and system programmer perspective, migration means updating your build compiler to a later version, including required source, option, testing, and environment changes. The current migration target is Enterprise COBOL V6.

From a development perspective, migration means recompiling programs with the newer compiler to get the performance benefits and access to new features of COBOL.

Is migrating from COBOL V4 and earlier to COBOL V6 different than migrating from COBOL V3 to V4?

Yes. Since the newer generation of COBOL compilers can use different instructions to make your COBOL programs more efficient, they can reveal hidden and underlying issues with invalid data use at run time. The presence of invalid data can lead to different behaviors, so additional testing is needed. Most customers do not have this problem, but you cannot know in advance if you will run into these problems, thus we have a new recommended migration process.

Will support end for my load modules that have been compiled with earlier versions of COBOL?

No. The already compiled modules using z/OS LE will continue to be supported in production as long as you’re using a supported z/OS level.

Why do I need to migrate?

The necessity is that EOS (End of Service) is announced for Enterprise COBOL V4 and V5. See IBM Software lifecycle website for more information.

The feasibility lies in the following points:
  • Fully exploiting z/Architecture: Enterprise COBOL V6 has advanced optimization and deep hardware exploitation of the latest IBM mainframes to improve performance.
  • Modernizing applications: You can leverage new COBOL language and productivity features, such as JSON, Conditional compilation, new intrinsic functions, 64-bit COBOL applications, and others.

Are there any tools to speed up migration?

Yes. IBM DevOps tools can make management of your applications much easier, including automated testing, which is key to migrating to COBOL V6 from COBOL V4 and earlier compilers. For improved application build and release, the DevOps tools are as follows: For improved editing and debugging, the DevOps tools are as follows: For automated testing and testing efficiency, the DevOps tools are as follows:

Do I need to recompile everything for the migration?

Although it is recommended, you do not have to recompile all of your programs with the newer build compiler. However, only the recompiled programs have performance boost of COBOL V6.

Most COBOL users focus their migration effort on applications or programs that are under active development. You can first analyze the development activity on your applications to determine the key candidates for recompilation. Applications or programs that are not regularly updated do not need to be immediately recompiled. If the source of an applications or a programs is changed, you must recompile the application or program, but if not, you could simply use ABO to improve the performance.

Are there any best practices to learn before my migration?

Yes. In order to avoid a failed migration which is possibly caused by a presence of invalid data in COBOL data items at run time, you can go through a 2-compile and 2-test process with migration options, which were added to the compiler to help migration. You can also use IBM DevOps tools to build and test automatically, which will simplify the migration and further application maintenance and upgrades.

Where can I get an overview of the complete migration process?

The following migration process diagram illustrates the whole migration process and COBOL Migration Assistant provides a guidance to migration.
The migration process falls into three phases. They are "Prepare source and LE", "Install new compiler", and "Recompile, test, and verify". In the "Prepare source and LE" phase, the first step is for those who have PDS load libraries to migrate them to PDSE. Then, if you have OS/VS COBOL programs, you have to keep them separated, or migrate them early to COBOL V5 or V6, or migrate them to V4 first. If your COBOL programs do not run under LE, you need to move your old runtime to LE. In the "Install new compiler" phase, you first have to upgrate your software and hardware to the required levels, and install prerequisite services updates. Then, you can start to raise region sizes, install new compiler and PTFs, and set default compiler options. In the last "Recompile, test, and verify" phase, if your programs are not compiled with COBOL compiler V3 or later, you should update your COBOL source. Then, you can proceed to recompile selected programs and do regression tests.

How do I select the top CPU hitters for my first migration target?

The following video introduces a way to identify the top CPU hitters in four steps, including identifying peak usage, identifying top job-program pairs, identifying top models, and scanning for COBOL CSECTS.

Are there any education packages available so that I can take a deep dive into migration?

The IBM Enterprise COBOL for z/OS V6 Migration Webinar and Performance Tuning Webinar are both available for clients at no charge. The webinars are hosted regularly via webcasts. Check the upcoming ones and register to join from the COBOL Migration & Performance Webinars.

Past migration webinars can be found at Enterprise COBOL Migration Webinars on Box, and past performance webinars can be found Enterprise COBOL Performance Webinars on Box.

How can I get support if running into migration issues?

You can open a case at COBOL compilers support portal to report migration problems.

Once I've migrated to V5 or V6, do I have to worry about invalid data?

If you have corrected all previous invalid data and you have validated the data your program uses, then no. If you still have invalid data, you may see differences in behaviour after a future migration or when you change the ARCH or OPT options.

If I find that my programs are using invalid data at run time, but my application results are OK, can I avoid correcting the invalid data problems?

No. For some customers who migrated successfully to COBOL V6.1 without testing invalid data, when they moved up to COBOL V6.2 and compiled with ARCH(12) for z14 hardware, their programs started abending on the invalid data. Invalid data could be a problem for years and should be corrected.