VS COBOL II Support

This section discusses CA IDMS support for programs compiled under the VS COBOL II compiler. It is divided into two parts:
idmscu19
This section discusses CA IDMS support for programs compiled under the VS COBOL II compiler. It is divided into two parts:
2
2
 
This section applies only to programs run in the online DC/UCF system. Except where specifically noted, it does not apply to programs run in another region (such as batch or CICS Transaction Server) even if the programs contain CA IDMS DML commands.
All the provisions of this section also apply to programs compiled under an LE-compliant compiler, unless otherwise noted. For more information about IBM Language Environment and LE-compliant compilers, see Considerations for IBM Language Environment.
Programs compiled under VS COBOL II can be run under the IBM runtime Language Environment subject to the requirements documented by IBM and the CA IDMS restrictions documented below and in Considerations for IBM Language Environment. IBM no longer supports programs running under the VS COBOL II runtime environment.
Features Supported by CA IDMS
The following COBOL II features are supported by CA IDMS:
  • Reentrancy
    -- Fully reentrant and non-reentrant programs are supported. The RENT compiler option must be specified if the program is reentrant. NORENT must be specified if the program is non-reentrant.
    Quasi-reentrancy is not supported for VS COBOL II programs. It is strongly recommended that all COBOL II programs be compiled with the RENT option. A separate copy of each NORENT COBOL II program will be loaded for each concurrent task. CPU and storage utilization will be extremely high.
  • Residency
    -- Resident and nonresident programs are supported. The NORES compiler option causes all necessary VS COBOL II runtime support modules to be linked with the program. The program can then be executed without having to load any support modules. The RES option causes the runtime support modules to be brought in as needed during execution.
    The following combinations of RENT and RES options are supported:
    • RENT RES
    • NORENT NORES
    • NORENT RES
      31-bit programs require the RENT and RES options. This combination is recommended for most efficient processing. The RES option is not relevant to LE-compliant compilers, which always use this option.
      The RENT/NORES combination is not allowed by the VS COBOL II compiler.
      Do not confuse the RES compiler option with the CA IDMS RESIDENT parameter (assigned at SYSGEN or by using a DCMT command). The CA IDMS RESIDENT parameter causes the user program to be loaded into the resident pool during startup, and remains there for the duration of system execution.
  • XA support
    -- Full 31-bit support is provided. COBOL II programs can reside above or below the 16-meg line, and can execute in 24-bit or 31-bit mode. User data areas can reside below the 16-meg line (compiler option DATA(24)) or anywhere in the region (DATA(31)). The following table shows the default attributes assigned by the COBOL II compiler based on the combination of RES and RENT compiler options.
RMODE and AMODE Attributes
Compiler options
Default RMODE/AMODE
RES/RENT
RMODE(ANY) AMODE(ANY)
RES/NORENT
RMODE(24) AMODE(ANY)
NORES/NORENT
RMODE(24) AMODE(24)
To run a task in 31-bit mode, it must be defined with a LOCATION of ANY (at SYSGEN or at runtime using a DCMT VARY DYNAMIC PROGRAM command).
  • Static and dynamic calls
    -- CA IDMS supports the following types of calls provided by VS COBOL II:
    • CALL literal with NODYNAM, static (more storage, less CPU)
    • CALL identifier, dynamic (less storage, more CPU)
      To call a program dynamically you must use the call identifier format.
      A VS COBOL II program can use the COBOL CALL verb to invoke an assembler or COBOL II subprogram. The CA IDMS TRANSFER CONTROL (LINK or XCTL) must be used for invoking VS COBOL subprograms. The subprogram must be defined to the system either at SYSGEN or by using a DCMT VARY DYNAMIC PROGRAM command. The correct language must be specified, and the NONOVERLAYABLE attribute must also be specified.
      A COBOL II program and all the COBOL II subprograms that it calls dynamically must be compiled with the same RES/NORES compiler option.
      A dynamic call is often a more efficient way for one online VS COBOL II program to call another than the use of a TRANSFER CONTROL DML command. Note, however, that when a dynamic call is made, the DC/UCF system is not aware that the application is running in a new program. Therefore, error messages and program statistics will not reflect the call.
      There are also restrictions on using static or dynamic calls when invoking an assembler subprogram. If the assembler program is not fully reentrant or if the assembler program issues any operating system SVC instructions, the program must be invoked with a DC TRANSFER control statement. Note that use of SVC instructions in an online program presents security and performance concerns. Such instructions should be avoided unless they are absolutely necessary. In most cases, DC/UCF system functions can be used instead.
  • Optimizer
    -- The COBOL II optimizer is fully supported. Service reloads do not have to be explicitly coded in the program, as is required for VS COBOL.
  • STRING/UNSTRING/INSPECT
    -- COBOL II verbs that require GETMAIN services are supported; this includes STRING, UNSTRING, and INSPECT.
    Exercise caution with STRING, UNSTRING, and INSPECT.Use of these may increase SRB time. Commands in a VS/COBOL II environment may cause additional screening of supervisor calls resulting in some performance degradation. This concern does not apply when using VS/COBOL II in an IBM runtime Language Environment provided that RHDCLEFE is defined in the IDMS/DC Sysgen.
  • Compiler options
    -- The following compiler options that affect object code execution are supported:
    • DATA
    • OPTIMIZE
    • PFDSGN
    • RENT
    • RESIDENT
    • SSRANGE
    • TRUNC
      See the discussion of the TRUNC option in the section Executing Programs.
    • ZWB
  • Execution time options
    -- COBOL II has an options module (IGZEOPT) that can be assembled and link-edited to control options at execution time. The module needs to be linked with each online VS COBOL II application program. Valid macro values for parameters that affect CA IDMS performance are shown below:
    IGZOPT SYSTYPE=OS,     DEBUG=NO,     STAE=NO,     AIXBLD=NO,     SSRANGE=YES/NO,     SPOUT=YES/NO
Features Not Supported by CA IDMS
The following COBOL II features are not supported by CA IDMS:
  • ENVIRONMENT and DATA DIVISION entries normally associated with file management (for example, INPUT-OUTPUT SECTION, FILE SECTION)
  • I/O statements, including ACCEPT, CLOSE, DELETE, DISPLAY, OPEN, READ, REWRITE, and WRITE
    DATE/TIME related ACCEPT statements are supported in release 14.1and later for COBOL II and LE-compliant compilers.
    The debugging features FDUMP and TEST
  • The sorting features SORT and MERGE
  • The compiler options ADV, DYNAM, FASTSRT, GRAPHIC, and OUTDD