Start of change

Before migration

This topic describes frequently asked questions before migration.

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.

Start of change

Which COBOL 6 version should I choose to migrate to?

It is recommended that you migrate to the latest COBOL version (COBOL 6.4 that was released in April 2022) to benefit from the latest features and performance enhancements. To discover the latest features, see What is new in Enterprise COBOL for z/OS 6.4 and COBOL 6.4 with PTFs installed.

For a list of compatible hardware and software levels for the COBOL 6.4 compiler, see the Software Product Compatibility Reports (SPCR) website. From the SPCR website, click Create a Report under in-depth reports, search for Enterprise COBOL for z/OS, choose version 6.4, and then click submit.

End of change

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 advantages of COBOL 6 are as follows:
  • 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 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 (as introduced in the following FAQ) to build and test automatically, which will simplify the migration and further application maintenance and upgrades.

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.

Start of changeFor improved application building and releasing, 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: For efficient analyzing, the DevOps tools are as follows: End of change
Start of change

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 the performance boost of COBOL 6.

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 application or a program is changed, you must recompile the application or program, but if not, you can use IBM Automatic Binary Optimizer for z/OS (ABO) to improve the performance. For details about ABO, see the ABO product page.

End of change

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

Watch full-screen video on IBM MediaCenter

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.

Can I measure the performance gains of a COBOL program on production systems after migration?

Yes, you can, but it is not recommended because hardware, workloads, and code may all be changed during the migration. The best and most accurate way is to measure COBOL V4 modules and COBOL V6 modules right afterwards on the same machine with the same data. Make sure you either did measurements or kept your load modules around. Otherwise, you cannot get the old numbers when you move forward with your migration.

End of change