DB2 V8 lets you run in V8 Compatibility Mode (CM) before migrating to V8 New Function Mode (NFM). You must migrate to CM before you can migrate to Enabling New Function Mode (ENFM) and finally to NFM. The run-time must be LE, but here’s the catch: To use any of the new DB2 V8 functionality requires program changes, so you must re-compile your program with an LE-conforming compiler. You can use either the integrated coprocessor that’s part of the enterprise compilers or the DB2 V8 pre-compiler.
Understanding the specific compiler requirements requires some interpretation of several terms. In the DB2 V8 announcement, IBM indicated the requirements for a “supported compiler” as the minimum level. At that time, the supported COBOL and PL/I compilers were:
- Enterprise COBOL for z/OS and OS/390 V3.2 or later
- IBM COBOL for OS/390 and VM V2.2
- Enterprise PL/I for z/OS and OS/390 V3.2 or later
- IBM PL/I for MVS and VM V1.1.
These supported compilers were those IBM still designated as “in service.” Using the in-service guideline, the only COBOL compiler that’s supported as of May 1, 2007, is Enterprise COBOL V3.4. Supported PL/I compilers are PL/I for MVS V1.1.1 and Enterprise PL/I V3.5 and V3.6. However, PL/I for MVS will be out of service after September 2009, so the target for any compiler migration to use with DB2 should be the latest Enterprise compilers; this will avoid an additional near-term migration. It’s important that, in project planning, you ensure your LE migration team is in agreement on “supported levels” of compilers and other prerequisites. You also should verify that IBM Level 2 will respond to your calls and agree that your DB2 system is running in an IBM-supported environment.
IMS lacks any mandatory LE prerequisites that exclude the use of older runtimes and compilers, but there are significant benefits to using LE for IMS applications and there are IMS considerations when moving applications to LE and the new compilers.
So, how do you get to LE and an LEconforming compiler? The LE migration approach you select will depend on your unique requirements. There’s no right or wrong way to determine when you need to re-compile your programs with an LE-conforming compiler, but not understanding what you need to do and how to do it can lead to wasted effort and possible delays in upgrading your applications to the new compilers and to the latest IBM middleware.
Let’s consider some approaches to migrations and how some DB2 customers are working to become fully LE-conforming. Each approach has pros and cons. If you want the full benefits of DB2 V8, re-compile all your programs with a supported LE-conforming compiler. If the DB2 V8 functions aren’t important to you yet, you can continue to run DB2 V8 in CM. Your choice to re-compile selected applications can be based on your need to use new DB2 V8 functions or when normal maintenance requires recompilation. By re-compiling with LE-conforming compilers whenever any change is required, you can minimize the testing required, since presumably, you’ll test the changes you make even if they don’t involve new CICS, DB2 or compiler functions. Normally, this also will provide the other benefits (i.e., performance, improved debugging or testing, resource utilization improvements, etc.) associated with the new compilers.
Additional questions to consider are:
- What price does a customer pay for running old, unsupported COBOL and PL/I compilers?
- What is the exposure if something fails?
- What if some business need requires a program to be changed? What are the implications?
Any of these could dictate an emergency migration. There also may be an unexpected performance penalty because the latest software levels aren’t being utilized.
For example, a large Northeastern utility is approaching its migration as a staged conversion by using the new LEconforming compilers only when normal program development requires a change. For them, this avoids the risk of an extended outage in the middle of the night. They want to avoid unexpected problems that could force programmers to tackle the unfamiliar task of quickly converting old PL/I and COBOL syntax to the required syntax for the enterprise compilers. This always seems to occur while the clock is ticking, the tight batch window is closing, and managers are asking why the outage is taking so long. For this utility, a clear understanding of its inventory and the relationships of all components in its applications is critical.
The Yellow Brick Road