This section applies only to runtime support for COBOL programs that run in an online DC/UCF region. It does not apply to batch or CICS programs that access CA IDMS. It also does not apply to online COBOL programs compiled with the "old" VS COBOL compiler, prior to VS COBOL II. Online VS COBOL programs must comply with the compile and linkage restrictions described in Compiling and Executing CA IDMS Programs. If these restrictions are observed, the LE runtime environment will not be accessed by VS COBOL programs. This section does apply to programs compiled under VS COBOL II when run in online LE runtime environment.
What is IBM Language Environment (LE)?
LE is a runtime environment that replaces the language-specific runtime environments that existed previously. For example, VS COBOL had its own runtime environment; VS COBOL II had another. CA IDMS can execute programs that are designed to use the LE runtime environment. It can also execute programs compiled with pre-LE compilers that use the LE runtime environment subject to IBM's documented restrictions.
Language Environment has had several names for different operating systems and release levels. The term "LE" will be used in this document to refer to the IBM runtime Language Environment for any of the following operating systems:
Note: This section applies only to runtime supportin CA IDMS/DC. It does not apply to batch or CICS programs that access CA IDMS.
How Can You Use LE with CA IDMS/DC?
To execute online programs using the LE runtime libraries, follow these steps to bring up your CA IDMS environment:
Include the LE runtime load libraries in the CDMSLIB loadlib concatenation before any other IBM language loadlibs you are using. For example, before COBOL II.
This section contains the following topics:
Considerations About LE Runtime
Running LE-Compliant Compiler Programs Under CA IDMS/DC
Performance Improvements with RHDCLEFE
Running Pre-LE Programs
There are restrictions that apply when you run pre-LE programs in an LE runtime environment within CA IDMS/DC. Pre-LE programs are programs that were compiled with a non-LE compliant compiler, such as COBOL II.
Some of these restrictions are already documented in Compiling and Executing CA IDMS Programs and Appendix H:. Additional restrictions for LE are:
ABTERMENC=((ABEND,...
TRAP=((OFF,...
ADD PROGRAM CEEPIPI CONCURRENT ENABLED LANGUAGE ASSEMBLER NONOVERLAYABLE PROGRAM PROTECT REENTRANT RESIDENT REUSABLE .
Note: Running pre-LE programs with LE runtime can degradeperformance in some circumstances. If you notice poor performance, you should consider recompiling the programs with the newer compiler or running with RHDCLEFE (see "Performance Improvements with RHDCLEFE" below). The use of RHDCLEFE also removes the necessity of forcing the load of CEEPIPI before running any VS COBOL II programs.
Running LE Programs
LE programs are programs that were compiled with an LE-compliant compiler. CA IDMS/DC supports all LE-compliant compilers supported by IBM including:
For convenience, programs compiled with an LE-compliant compiler are referred to as "LE COBOL" programs below.
This section discusses Language Environment runtime options relevant to the online CA IDMS/DC environment.
Note: Also see Compiling and Executing CA IDMS Programs and Appendix H:. The restrictions on VS COBOL and VS COBOL II compile and runtime options also apply to programs compiled with an LE-compliant COBOL compiler unless specifically noted below.
See Appendix A: for sample compile and link JCL for both batch and online programs which use CA IDMS DML statements.
Runtime Options
The IBM Language Environment provides numerous options that control how programs operate at runtime. The default values are designed to be suitable in a batch environment. Therefore, it is necessary to modify some values for applications that are to run in a DC/UCF online system.
Note: As stated in the introduction to this appendix, this appendix does not apply to programs that run in a CICS or other region, even if they access CA IDMS using DML or SQL commands. It does apply to programs that run a DC/UCF online system, which are invoked from another front-end using CA IDMS UCF (such as an ADS/O application that is accessed using UCFCICS from a CICS front-end).
The IBM Language Environment provides a number of ways to specify runtime options. Four methods are supported for CA IDMS/DC online programs:
Note: This method is not available for z/OS Version 1.10 and higher. Use method 1 or method 4 for non-COBOL applications on z/OS Versin 1.10 and higher.
If this method is chosen, special copies of the IBM modules CEEBINIT and CEEPIPI must be maintained for use with online DC/UCF systems only. Due to maintenance considerations, this method is not recommended for COBOL applications. It is needed for PL/I programs compiled with a non-LE-compliant compiler. For more information on using this method, see Product Documentation Change LI23664.
Note: This method is not available for z/OS Version 1.9 and lower or for VSE. Use method 1 or 3 for those operating systems.
If this method is chosen, a CEEROPT load module can be created to override desired options. Like CEEUOPT, and unlike CEEDOPT, you only need to specify those options which are to be different from the installation default LE run-time operations. The resultant load module must be included in a load library in the CDMSLIB concatenation ahead of the default SCEERUN load library.
Note: The CEEROPT will be loaded in a CA IDMS region only if your CEEPRMxx member specified CEEROPT(ALL). For more information on using this module, refer to IBM documentation.
Except as discussed below, the IBM-supplied default runtime options can be used with any site-specific desired modifications. Note that the MSGFILE parameter is ignored and messages are sent to the CA IDMS log file.
Recommended settings for certain parameters are as shown below. For more details on these parameters see the IBM Language Environment Customization manual.
The purpose of RPTSTG is to determine the storage utilization for a particular application. The report is produced at the end of a COBOL task thread and is written to the CA IDMS log file. For efficiency reasons, the termination phase of COBOL processing is normally not executed in an online DC environment. If it is necessary to obtain storage information for a particular application, optional bit 196 can be set (See "COBOL II and LE COBOL Task Management" in Optional Online COBOL Functionality). Note that this option adversely affects performance. Storage reports are therefore normally produced only in a test or development system.
If OFF is specified, program checks in an LE application will result in an immediate task snap. This is similar to the result in a VS COBOL or VS COBOL II runtime environment. No LE messages related to the program check will be written. Furthermore, if any PL/I applications are included in the online system, any ON ERROR clauses will not be handled properly.
In addition to the parameters above, we strongly recommend that you use smaller values than the default ones for the various heap (ANYHEAP, BELOWHEAP, and HEAP) parameters and stack (LIBSTACK and STACK) parameters because these are allocated on a task thread basis. Storage allocation is most efficient if relatively large values are specified as sixteen bytes less than a multiple of 4096. Smaller values than 4096 should be set for some parameters to avoid wasting storage. The values shown below have been found to be suitable for most DC/UCF systems.
Even when the smallest possible storage values are chosen, the IBM Language Environment requests a substantial amount of below-the-line storage for each program invoked in an online task--particularly with older releases of LE. This storage is used for functions which are not supported in an online DC/UCF system. For this reason, DC/UCF provides optional functionality which forces all LE storage to be allocated above the 16M line for tasks which are defined as LOCATION ANY. You can enable this functionality by specifying #DEFOPT OPT00227 when compiling module RHDCOPTF.
ANYHEAP=(2032,4080,ANYWHERE,FREE) BELOWHEAP=(496,496,FREE) HEAP=(2032,4080,ANYWHERE,KEEP,2032,2032) LIBSTACK=(496,496,FREE) STACK=(2032,8176,ANY,KEEP) STORAGE=(NONE,NONE,NONE,0) THREADHEAP=(0100,0100,ANYWHERE,KEEP)
CA IDMS/DC supports these LE functions:
CA IDMS/DC also supports storage management services, but for performance reasons, they are not recommended. The storage management services are:
CA IDMS/DC does not support the following LE functions:
Beginning with Release 14.1, CA IDMS supports a more efficient method of running online VS COBOL II and LE COBOL programs under LE runtime. In order to realize this performance improvement, link RHDCLEFE and define it in the CA IDMS sysgen with the following values:
ADD PROGRAM RHDCLEFE CONCURRENT DYNAMIC ENABLED LANGUAGE IS ASSEMBLER NEW COPY IS ENABLED NONOVERLAYABLE PROGRAM NOPROTECT REENTRANT RESIDENT REUSABLE.
The advantages of using defining RHDCLEFE in an LE runtime environment are as follows.
The use of RHDCLEFE can reduce the CPU usage for TRANSFER CONTROL to another COBOL program, particularly a VS COBOL II program. Without RHDCLEFE, each such invocation of a VS COBOL II program will result in the establishment and termination of both the environment and the enclave. Each such invocation of a LE COBOL program will result in the establishment and termination of the enclave.
Note: RHDCLEFE is linked with a CEEUOPT with ALL31=(ON). As a consequence, all LE COBOL and VS COBOL II programs must be linked with AMODE(31) or AMODE(any).
This feature became available on release 15.0 service pack 3.
You can improve the performance of certain online applications that use COBOL programs under the IBM Language Environment (LE) by enabling a new optional feature which allows the use of a single LE enclave for multiple programs. The following explains the conditions under which performance can be improved and some restrictions on the programs that can utilize this new feature:
The following restrictions apply to COBOL programs that participate in a multiple-program enclave:
You can enable multiple-program enclaves at the system level even if some programs are not eligible. An ineligible program can be exempted in one of two ways:
Exempted programs can participate in the same task with eligible programs. All eligible programs share one process/enclave. Each exempted program uses its own process/enclave.
Copyright © 2014 CA.
All rights reserved.
|
|