Overview of the Enterprise COBOL for z/OS compilers and z/OS Language Environment runtime

This section provides an overview of the IBM® Enterprise COBOL for z/OS® compilers and the z/OS Language Environment runtime.

Enterprise COBOL 5 or 6 executables are program objects and can reside only in PDSE data sets. If your COBOL load libraries are in PDS data sets, copy the member to PDSE data sets and use PDSE data sets for your load libraries. IBM recommends that you allocate your PDSE load library data sets with RECFM=U, DSNTYPE=LIBRARY, and VERSION=2, and leave all the other attributes blank, like this in ISPF:
Record format . . . . U        
Record length . . . .          
Block size  . . . . .        
Data set name type    LIBRARY  
Data set version  . : 2        
This manual assumes that you have completed your runtime upgrade to Language Environment®. What does this mean? Follow these steps to ensure COBOL runtime upgrade is complete:
  1. Add Language Environment to the LNKLST/LPALST. This moves Language Environment into production, and all COBOL applications will run under Language Environment by default.
    • The only COBOL runtime library present should be SCEERUN. Remove any instances of COBLIB, VSCLLIB, or COB2LIB in JCL STEPLIB or JOBLIB statements or in CICS startup JCL.
    • Note: Only use one library for a given language in LNKLST/LPALST. For example, if you install Language Environment with the COBOL component in LNKLST/LPALST, do not have the OS/VS COBOL library or the VS COBOL II library installed in LNKLST/LPALST.
    Optional: Add Language Environment to the STEPLIB JCL. This is a more gradual approach where Language Environment is phased in one region (CICS or IMS) or user (TSO) at a time.
    Note: Programs run slower and use more virtual storage with this approach than using LNKLST/LPALST to access Language Environment.
  2. For programs compiled with NORES, use REPLACE linkage-editor control statements to replace the existing runtime library routines compiled with Language Environment versions.
  3. Ensure that SCEERUN is the only COBOL runtime library available in LNKLST/LPALST. Remove any other COBOL runtime libraries present, such as COBLIB, VSCLLIB, or COB2LIB.
  4. For VS COBOL II programs IGZEBST bootstrap models compiled with RES, do one of the following tasks:
    • Link to a runtime version of IGZEBST with APAR PN74000 applied
    • REPLACE with IGZEBST from Language Environment

If you understand these conditions, but your shop has not completed its runtime library migration, you must complete that migration before using this book. For help in completing your migration to Language Environment, see Chapter 3. Planning the move to Language Environment in the Enterprise COBOL 4.2 Compiler and Runtime Migration Guide.

Using Language Environment with Enterprise COBOL 5 or 6 and VS COBOL II programs

When running a mixture of VS COBOL II NORES programs and Enterprise COBOL 5 or 6 programs:

  • A current version of IGZEBST is required:
    • For statically CALLed programs in CICS®, you will need to replace IGZEBST in applications with VS COBOL II programs with the IGZEBST from LE with the PTFs for APAR PI33330 installed.
      Note: IGZEBST from LE with the PTFs for APAR PI33330 installed can also be used with any COBOL programs VS COBOL II and later without COBOL 5 or 6 programs.
    • For dynamically CALLed CICS programs, you just need to install the PTFs for APAR PI25079 on SCEERUN.
      Note: For statically CALLed programs in non-CICS, performance will be better if you replace IGZEBST in applications with VS COBOL II programs with the IGZEBST from LE with the PTFs for APAR PI33330 installed. It is not required. There is no issue with IGZEBST for dynamically called programs in non-CICS for calling VS COBOL II programs from COBOL 5 or 6 programs.
  • A current version of CEEBETBL, the Language Environment externals table, is required. If you are including object code bound some time ago with your COBOL 5 or 6 object code, you might be indirectly including an old version of CEEBETBL.

    If the length of CEEBETBL you bind is less than x'28' (or the length of the CEEBETBL in the current SCEELKED library), it is old and needs to be replaced, or you will encounter runtime abends or a terminating runtime message.

    If you rebind older object code with COBOL 5 or 6 as part of your migration, it is recommended that you specifically INCLUDE a current copy of CEEBETBL prior to INCLUDEs of the older object code, taking care that you do not inadvertently make CEEBETBL the entry point.

If you understand these conditions, and meet them all, you can skip to Planning to upgrade source programs.

If you do not understand these conditions, then continue reading these overview chapters. If you then discover that your shop has not completed its runtime library migration, see Chapter 3. Planning the move to Language Environment in the Enterprise COBOL 4.2 Compiler and Runtime Migration Guide for help in completing your runtime library migration.