• PDF version
  • Preface
    • About this document
      • Terminology clarification
      • IBM COBOL compilers by name and version
      • Acknowledgement
      • Using your documentation
        • Enterprise COBOL for z/OS Version 4 Release 1
        • Language Environment element of z/OS, Version 1 Release 7 or later
        • How to send your comments
      • Accessibility
        • Using assistive technologies
        • Keyboard navigation of the user interface
        • Accessibility of this document
    • Summary of changes
      • Changes in GC23-8527-00, December 2007
        • Compiler
        • Run time
      • Changes in GC27-1409-05, November 2006
      • Changes in GC27-1409-04, March 2006
      • Changes in GC27-1409-03, July 2005
      • Changes in GC27-1409-02, December 2003
      • Changes in GC27-1409-01, September 2002
        • Compiler
        • Run time
      • Changes in GC27-1409-00, November 2001
        • Compiler
        • Run time
      • Changes in GC26-4764-05, September 2000
        • Compiler
        • Run time
    • Summary of changes to the COBOL compilers
      • Changes in IBM Enterprise COBOL for z/OS, Version 4 Release 1
      • Changes in IBM Enterprise COBOL for z/OS, Version 3 Release 4: service updates, November 2006
      • Changes in IBM Enterprise COBOL for z/OS, Version 3 Release 4
      • Changes in IBM Enterprise COBOL for z/OS, Version 3 Release 3
      • Changes in IBM Enterprise COBOL for z/OS and OS/390, Version 3 Release 2
      • Changes in IBM Enterprise COBOL for z/OS and OS/390, Version 3 Release 1
      • Changes in COBOL for OS/390 & VM, Version 2 Release 2
      • Changes in COBOL for OS/390 & VM V2 R1 Modification 2
      • Changes in COBOL for OS/390 & VM V2 R1 Modification 1
      • Changes in COBOL for OS/390 & VM, Version 2 Release 1
  • Part 1: Overview
    • Introducing the new compiler and run time
      • Product relationships: compiler, run time, debug
      • Comparison of COBOL compilers
      • Language Environment's runtime support for different compilers
      • Advantages of the new compiler and run time
      • Suggestions for incremental migration
      • Changes with the new compiler and run time
        • CMPR2 compiler option not available
        • FLAGMIG compiler option not available
        • ANALYZE compiler option not available
        • SOM-based object-oriented COBOL not available
        • Integrated CICS translator available
      • General migration tasks
        • Planning your strategy
        • Moving to the Language Environment run time
        • Upgrading your source to Enterprise COBOL
          • OS/VS COBOL
          • VS COBOL II
          • IBM COBOL
        • Adding Enterprise COBOL programs to existing applications
        • Upgrading to Enterprise COBOL Version 4
    • Do I need to recompile?
      • Migration basics
        • Runtime migration
          • Moving to Language Environment
        • Source migration
      • Service support for OS/VS COBOL and VS COBOL II programs
        • Changing OS/VS COBOL programs
  • Part 2: Migration strategies
    • Planning the move to Language Environment
      • Preparing to move to the Language Environment runtime library
        • Installing Language Environment
        • Assessing storage requirements
          • DASD storage requirements
          • Virtual storage requirements
            • Virtual storage information for non-CICS
            • Virtual storage information for CICS
        • Educating your programmers about Language Environment
      • Taking an inventory of your applications
        • Vendor tools, packages, and products
        • COBOL applications
        • Assigning complexity ratings
          • When moving from the OS/VS COBOL run time
          • When moving from the VS COBOL II run time
        • Setting up conversion/no-conversion categories
      • Deciding how to phase Language Environment into production mode
        • Multilanguage conversion
        • Determining how applications will have access to the library
          • LNKLST/LPALST
            • Temporary installation in LNKLST/LPALST or use STEPLIB
          • STEPLIB
          • Problems with STEPLIB and IMS programs
            • How to minimize the impact
            • How to recover
          • STEPLIB example
      • Setting up a regression testing procedure
        • Take performance measurements
      • Cutting over to production use
    • Planning to upgrade source programs
      • Preparing to upgrade your source
        • Installing Enterprise COBOL
        • Assessing storage requirements
        • Deciding which conversion tools to use and install them
        • Educating your programmers on new compiler features
      • Taking an inventory of your applications
        • Taking an inventory of vendor tools, packages, and products
        • Taking an inventory of COBOL applications
        • Prioritizing your applications
          • Assigning complexity ratings
          • Determining conversion priority
        • Setting up upgrade/no upgrade categories
        • Setting up a conversion procedure
          • Programs without CICS or Report Writer
          • Programs with CICS
          • Programs with Report Writer statements to be discarded
          • Programs with Report Writer statements to be retained
      • Making application program updates
  • Part 3: Moving existing applications to Language Environment
    • Running existing applications under Language Environment
      • Set recommended default Language Environment runtime options
        • Recommended runtime options for non-CICS applications
          • Other runtime options affecting non-CICS applications
        • Recommended runtime options for CICS applications
          • Other runtime options affecting CICS applications
      • Invoking existing applications
        • For non-CICS applications
          • Specify the correct library
          • Specify alternate DDNAMES (optional)
          • Remove DDNAMES no longer required (optional)
        • For CICS applications
          • Output differences when using Language Environment on CICS
      • Link-editing existing applications
      • Obtaining a system dump or a CICS transaction dump
        • Method 1: Specify the TERMTHDACT runtime option
        • Method 2: Specify an abnormal termination exit
          • Abnormal termination exit (non-CICS)
          • Abnormal termination exit (CICS)
      • Getting compatible abend behavior
      • Ensuring the compatibility of return-code values
    • Moving from the OS/VS COBOL run time
      • Determining which programs require link-editing
        • Applications with COBOL programs compiled with RES
        • Applications with COBOL programs compiled with NORES
        • Applications with COBOL programs compiled with RES and NORES
      • Determining which programs require upgrading
        • On CICS
        • On non-CICS
          • ILC with PL/I
          • ILC with FORTRAN
          • OS/VS COBOL programs in more than one enclave
      • Comparing runtime options and specification methods
        • Specifying Language Environment runtime options
          • Installation-wide defaults
          • Region-wide defaults
          • CEEUOPT application-specific defaults
          • Invocation procedures
          • Order of precedence
        • Comparing OS/VS COBOL and Language Environment runtime options
      • Closing files in non-COBOL and OS/VS COBOL programs
        • Other environments
      • Running in a reusable runtime environment
        • Using ILBOSTP0
      • Managing dump services
        • OS/VS COBOL symbolic dumps
        • System storage dumps and CICS transaction dumps
        • Language Environment formatted dumps
          • Dump destination on non-CICS
          • Dump destination on CICS
      • Using ILBOABN0 to force an abend
      • Using SORT or MERGE in OS/VS COBOL programs
      • Understanding SYSOUT output changes
        • SYSOUT output with RECFM=FB
        • OS/VS COBOL trace output sequence
      • Communicating with other languages
    • Moving from the VS COBOL II run time
      • Determining which programs require link-editing
        • Applications with COBOL programs compiled with RES
        • Applications with COBOL programs compiled with NORES
        • Programs that use ILC
        • Statically calling IGZCA2D or IGZCD2A
      • Determining which programs require upgrading
        • CICS
        • Non-CICS
          • ILC with PL/I
          • ILC with FORTRAN
          • OS/VS COBOL programs in more than one enclave
      • Comparing runtime options and specification methods
        • Specifying Language Environment runtime options
          • Installation-wide defaults
          • Region-wide defaults
          • Application-specific defaults
          • Invocation procedures
          • Order of precedence
        • Specifying VS COBOL II runtime options
          • Applications with COBOL programs compiled with RES (non-CICS)
          • Applications with COBOL programs compiled with NORES (non-CICS)
          • Applications running on CICS
        • Comparing VS COBOL II and Language Environment options
      • Closing files in non-COBOL and OS/VS COBOL programs
        • Other environments
      • Running in a reusable runtime environment
        • Precautions if establishing a reusable environment under IMS
        • Using IGZERRE
        • Using ILBOSTP0
        • Using RTEREUS
      • Managing messages, abend codes, and dump services
        • Runtime messages
          • Messages prefixed with IKF
          • Messages prefixed with IGZ
        • Timing of abend for runtime detected errors
        • Abend codes
        • Using CEEWUCHA
        • Dump services
          • OS/VS COBOL symbolic dumps
          • VS COBOL II FDUMPs
            • Use TEST(SYM)
          • Language Environment formatted dumps
            • Dump destination on non-CICS
            • Dump destination on CICS
          • System storage dumps
      • Using ILBOABN0 to force an abend
      • Using SORT or MERGE
        • In OS/VS COBOL programs
        • In VS COBOL II subprograms
      • Understanding SYSOUT output changes
        • DISPLAY UPON SYSOUT and DD definitions
        • SYSOUT output with RECFM=FB
        • OS/VS COBOL trace output sequence
      • Communicating with other languages
        • General ILC considerations
          • COBOL DISPLAY output (non-CICS)
          • Effect of STOP RUN (non-CICS)
        • COBOL and FORTRAN
        • COBOL and PL/I
          • Difference in behavior for dynamically called RENT programs
        • COBOL and C/370
          • Difference in behavior for dynamically called RENT programs
      • Initializing the runtime environment
        • Existing applications using LIBKEEP
        • Considerations for Language Environment preinitialization
      • Determining storage tuning changes
        • Alternatives to IGZTUNE
        • Considerations for SPOUT output
      • Additional CICS considerations
        • Performance considerations
        • SORT interface change
        • WORKING-STORAGE limits
        • VS COBOL II NORENT programs
        • IGZETUN or IGZEOPT and MSGFILE
        • CICS HANDLE commands and the CBLPSHPOP runtime option
          • Example 1: No effect on compatibility
          • Example 2: Effect on compatibility
        • DISPLAY statement
        • CLER transaction
      • Undocumented VS COBOL II extensions
    • Link-editing applications with Language Environment
      • Applications comprised of NORES programs
        • Implications of becoming RES-like
      • Applications comprised of RES programs
    • Upgrading Language Environment release levels
      • Change in behavior for DATA(31) programs under OS/390, Version 2 Release 9, or later
      • Missing CEEDUMP for applications with assembler programs that use the DUMP macro under OS/390, Version 2 Release 8
      • Change in file handling for COBOL programs with RECORDING MODE U under OS/390, Version 2 Release 10
      • Change in the amount of space that is used for an output file that is defined as RECFM=U under OS/390, Version 2 Release 10
      • Calling between assembler and COBOL under OS/390, Version 2 Release 9 or later
      • Dynamic calls to assembler programs under Language Environment for z/OS, Version 1 Release 2 or later
      • Diagnosis of a COBOL program that has an FD entry for a VSAM file on CICS with Language Environment for z/OS, V1R2 or later
  • Part 4: Upgrading source programs
    • Upgrading OS/VS COBOL source programs
      • Comparing OS/VS COBOL to Enterprise COBOL
        • Language elements that require change (quick reference)
      • Using conversion tools to convert programs to COBOL 85 Standard
        • COBOL Conversion Tool (CCCA)
        • OS/VS COBOL MIGR compiler option
        • CMPR2 and FLAGMIG compiler options
      • Language elements that require other products for support
        • Report Writer
          • Keep existing Report Writer code and use the Report Writer Precompiler
          • Convert existing Report Writer code using the Report Writer Precompiler
          • Run existing OS/VS COBOL-compiled Report Writer programs under Language Environment
          • Report Writer language items affected
      • Language elements that are no longer implemented
        • ISAM file handling
          • ISAM file handling language items affected
            • Conversion options
        • BDAM file handling
          • BDAM file handling language items affected
            • Automated conversion options
            • Manual conversion actions
        • Communication feature
          • Communication language items affected
          • Communication conversion actions
      • Language elements that are not supported
      • Undocumented OS/VS COBOL extensions that are not supported
      • Language elements that changed from OS/VS COBOL
    • Compiling converted OS/VS COBOL programs
      • Key compiler options for converted programs
      • Unsupported OS/VS COBOL compiler options
      • Prolog format changes
    • Upgrading VS COBOL II source programs
      • Determining which programs require upgrade before compiling with Enterprise COBOL
      • Upgrading VS COBOL II programs compiled with the CMPR2 compiler option
      • COBOL 85 Standard interpretation changes
        • REPLACE and comment lines
        • Precedence of USE procedures
        • Reference modification of a variable-length group receiver
      • ACCEPT statement
      • New reserved words
        • New reserved words
      • Undocumented VS COBOL II extensions
    • Compiling VS COBOL II programs
      • Key compiler options for VS COBOL II programs
        • Compiling with Enterprise COBOL
        • Compiler options not supported in Enterprise COBOL
      • Prolog format changes
    • Upgrading IBM COBOL source programs
      • Determining which programs require upgrade before you compile with Enterprise COBOL
      • Upgrading SOM-based object-oriented (OO) COBOL programs
      • SOM-based object-oriented COBOL language elements that are not supported
        • Compiler options IDLGEN and TYPECHK
      • SOM-based object-oriented COBOL language elements that are changed
      • New reserved words in Enterprise COBOL
        • New reserved words
      • Language Environment runtime considerations
    • Compiling IBM COBOL programs
      • Default compiler options for IBM COBOL programs
      • Key compiler options for IBM COBOL programs
      • Compiler options not available in Enterprise COBOL
  • Part 5: Moving programs to Enterprise COBOL
    • Migrating from CMPR2 to NOCMPR2
      • Upgrading programs compiled with the CMPR2 compiler option
        • ALPHABET clause of the SPECIAL-NAMES paragraph
          • CMPR2
          • NOCMPR2
          • Messages
          • Corrective action for ALPHABET clause of the SPECIAL-NAMES paragraph:
        • ALPHABETIC class
          • CMPR2
          • NOCMPR2
          • Messages
          • Corrective action for the ALPHABETIC class:
        • CALL . . . ON OVERFLOW
          • CMPR2
          • NOCMPR2
          • Messages
          • Corrective action for CALL . . . ON OVERFLOW:
        • Comparisons between scaled integers and nonnumerics
          • CMPR2
          • NOCMPR2
          • Messages
          • Corrective action for comparisons between scaled integers and nonnumerics:
        • COPY ... REPLACING statements using non-COBOL characters
          • CMPR2
          • NOCMPR2
          • Lowercase alphabetic characters
          • Message
          • Corrective action for lowercase alphabetic characters:
          • The colon (:) character
          • Message
          • Corrective action for the colon (:) character:
          • Characters that are not valid
          • Message
          • Corrective action for characters that are not valid:
        • COPY statement using national extension characters
          • CMPR2
          • NOCMPR2
          • Message
          • Corrective action for the COPY statement that uses national extension characters:
        • File status codes
          • CMPR2
          • NOCMPR2
          • Message
          • Corrective action for file status codes:
        • Fixed-file attributes and DCB= parameters of JCL
          • CMPR2
          • NOCMPR2
          • Messages
          • Recommendation for DCB= parameters of JCL
        • Implicit EXIT PROGRAM
          • CMPR2
          • NOCMPR2
          • Messages
          • Corrective action for Implicit EXIT PROGRAM:
        • OPEN statement failing for QSAM files (FILE STATUS 39)
          • CMPR2
          • NOCMPR2
          • Message
          • Corrective action for OPEN statement failing for QSAM files (FILE STATUS 39)
        • OPEN statement failing for VSAM files (FILE STATUS 39)
          • CMPR2
          • NOCMPR2
          • Message
          • Corrective action for OPEN statement failing for VSAM files (FILE STATUS 39)
        • PERFORM return mechanism
          • CMPR2
          • NOCMPR2
          • Messages
          • Corrective action for the PERFORM return mechanism:
        • PERFORM ... VARYING ... AFTER
          • CMPR2
          • NOCMPR2
          • Message
          • Corrective action for PERFORM . . . VARYING . . . AFTER
        • PICTURE clause with "A"s and "B"s
          • CMPR2
          • NOCMPR2
          • Message
          • INITIALIZE verb
          • Corrective action for the INITIALIZE verb
          • STRING verb
          • Corrective action for the STRING verb
          • CALL and CANCEL verbs
        • PROGRAM COLLATING SEQUENCE
          • CMPR2
          • NOCMPR2
          • Messages
          • Corrective action
        • READ INTO and RETURN INTO
          • CMPR2
          • NOCMPR2
          • Messages
          • Corrective action for the READ INTO and RETURN INTO phrases:
        • RECORD CONTAINS n CHARACTERS
          • CMPR2
          • NOCMPR2
          • Message
          • Corrective action for the RECORD CONTAINS n CHARACTERS clause:
        • Reserved words
          • New reserved words
          • Messages
          • Corrective action for new reserved words:
        • SET . . . TO TRUE
          • CMPR2
          • NOCMPR2
          • Message
          • JUSTIFIED clause
          • Corrective action for the JUSTIFIED clause
          • BLANK WHEN ZERO clause
          • PICTURE string with editing symbols
        • SIZE ERROR on MULTIPLY and DIVIDE
          • CMPR2
          • NOCMPR2
          • Message
          • Corrective action for the SIZE ERROR on MULTIPLY and DIVIDE:
        • UNSTRING operand evaluation
          • CMPR2
          • NOCMPR2
          • Messages
          • Corrective action for the UNSTRING OPERAND evaluation:
        • UPSI switches
          • CMPR2
          • NOCMPR2
          • Message
          • Corrective action for UPSI switches:
        • Variable-length group moves
          • CMPR2
          • NOCMPR2
          • Message
          • Corrective action for variable-length group moves:
    • CICS conversion considerations for COBOL source
      • Key compiler options for programs that run under CICS
      • Migrating from the separate CICS translator to the integrated translator
        • Integrated CICS translator
          • Key compiler options for the integrated CICS translator
      • Base addressability considerations for OS/VS COBOL programs
        • SERVICE RELOAD statements
        • LENGTH OF special register
        • Programs using BLL cells
          • DL/I call interface
        • Example 1: Receiving a communications area
        • Example 2: Processing storage areas that exceed 4K
        • Example 3: Accessing chained storage areas
        • Example 4: Using the OCCURS DEPENDING ON clause
    • DB2 coprocessor conversion considerations
      • DB2 coprocessor integration
      • Considerations when moving to the coprocessor
      • Code-page considerations when moving to the coprocessor
    • Adding Enterprise COBOL programs to existing COBOL applications
      • Applications comprised of RES programs
        • Adding Enterprise COBOL programs that use static CALL statements
        • CALL statements on non-CICS
        • CALL statements on CICS
      • Applications comprised of NORES programs
        • Behavior before link-editing with Language Environment
        • Behavior after link-editing with Language Environment
        • Link-edit override requirement
      • Multiple load module considerations
        • OS/VS COBOL considerations
        • VS COBOL II considerations
      • AMODE and RMODE considerations
      • Runtime considerations
        • ILBOSRV
        • TGT (Task Global Table) and RSA (Register Save Area) conventions
      • Applications that contain assembler programs that call COBOL
    • Upgrading to Enterprise COBOL Version 4
      • Upgrading programs that have SEARCH ALL statements
      • New XML parser and XMLPARSE compiler option
      • Migrating from XMLPARSE(COMPAT) to XMLPARSE(XMLSS)
      • New reserved words
      • Simplified TEST compiler option
      • Removal of runtime support for SIMVRD
  • Part 6: Appendixes
    • Commonly asked questions and answers
      • Prerequisites
      • Compatibility
      • Link-editing with Language Environment
      • Compiling with Enterprise COBOL
      • Language Environment services
      • Language Environment runtime options
      • Interlanguage communication
      • Subsystems
      • z/OS
      • Performance
      • Service
    • COBOL reserved word comparison
    • Conversion tools for source programs
      • MIGR compiler option
        • Language differences
        • Statements supported with enhanced accuracy
          • Arithmetic statements
        • LANGLVL(1) statements not supported
        • LANGLVL(1) and LANGLVL(2) statements not supported
          • Communications
            • Report Writer
            • ISAM
            • BDAM
            • Use for debugging
            • Other statements
      • Other programs that aid conversion
        • WebSphere Studio Asset Analyzer
        • COBOL and CICS/VS Command Level Conversion Aid (CCCA)
          • When to use CCCA
          • CCCA processing of CICS statements
            • EXEC CICS processing
          • Statements dealing with the primary BLLs
        • CICS Application Migration Aid
        • COBOL Report Writer Precompiler
        • Debug Tool Load Module Analyzer
        • The Edge Portfolio Analyzer
        • Vendor products
    • Applications with COBOL and assembler
      • Determining requirements for calling and called assembler programs
        • Calling assembler programs
        • Called assembler programs
        • SVC LINK and COBOL run-unit boundary
      • Runtime support for assembler COBOL calls on non-CICS
      • Runtime support for assembler COBOL calls on CICS
      • Converting programs that use ESTAE/ESPIE for condition handling
        • Error handling routines in existing programs
          • Establishing user-written condition handling routines
          • Advantages of user-written condition handling routines
      • Converting programs that change the program mask
      • Calling assembler programs that expect a certain program mask
      • Upgrading applications that use an assembler driver
        • Convert the assembler driver
        • Modify the assembler driver
        • Use an unmodified assembler driver
      • Invoking a COBOL program with an MVS ATTACH
      • Assembler loading and calling COBOL programs
      • Assembler programs that load and BALR to MAIN COBOL programs
      • Assembler programs that load and delete COBOL programs
      • Freeing storage in subpools (z/OS and OS/390 only)
      • Invoking programs - AMODE requirements
    • Debugging tool comparison
      • Debugging applications compiled with older compilers
      • Debugging migrated applications
        • Applications with OS/VS COBOL programs
        • Applications with VS COBOL II programs
        • Initiating Debug Tool
      • Command language comparison
    • Compiler option comparison
    • Compiler limit comparison
    • Preventing file status 39 for QSAM files
      • Processing existing files
        • Defining variable-length records
        • Defining fixed-length records
        • Converting existing files that do not match the COBOL record
        • Processing new files
        • Processing files dynamically created by COBOL
    • Overriding linkage editor defaults
      • When to override the default settings
      • How to override the defaults
    • Link-edit example
    • TSO considerations
      • Using REXX execs
    • IMS considerations
      • Unsupported VS COBOL II features
        • BLDL user exit unsupported
          • LIBKEEP unsupported
      • Compiler options relevant for programs run on IMS
      • Compiling and linking COBOL programs for running under IMS
      • ENDJOB/NOENDJOB compiler option requirements
        • Preloading requirements
        • Last-used state behavior under Language Environment
        • When programs remain in the last-used state
      • Recommended modules for preload
        • Enterprise COBOL programs
        • OS/VS COBOL programs
      • Condition handling using CBLTDLI on IMS
      • Performance consideration when running OS/VS COBOL programs
      • Using a GTF trace to determine which modules are loaded
      • DFSPCC20 modification unsupported
  • Notices
    • Programming interface information
    • Trademarks
  • Glossary
  • List of resources
    • IBM Enterprise COBOL for z/OS
    • Language Environment for z/OS
    • Related publications
  • Index