Previous Topic: PROGRAM Statement SyntaxNext Topic: PROGRAM Statement Usage


More information:

Storage Protection

PROGRAM Statement Parameters

PROgram program-name

Specifies the name of the program being added, modified, or deleted.

Program-name must be the one- through eight-character name of a program load module. Program-name must begin with an alphabetic or national (#, $, @) character.

Version is version-number

Qualifies the named program with a version number.

Version-number must be an integer in the range 1 through 9,999. The default is 1.

ADSo dialog STAtistics

For CA ADS dialogs only, specifies whether statistics are collected for this CA ADS dialog.

Note: Users can override this parameter at runtime with the DCMT VARY PROGRAM ADSO STATISTICS command.

ON

Enables statistics collection for the specified dialog. You should specify this parameter in conjunction with the DIALOG STATISTICS parameter of the ADSO statement, discussed earlier in this chapter.

OFF

Indicates that statistics will not be collected.

OFF is the default when you omit the ADSO DIALOG STATISTICS parameter from the PROGRAM statement.

CONcurrent

Specifies the program can be used by multiple run units and/or tasks at the same time. If the program is reentrant or quasireentrant, one copy of the program is used to process all requests. If the program is nonreentrant, as many copies of the program are used as necessary to process requests concurrently.

CONCURRENT is the default when you specify neither CONCURRENT nor NONCURRENT in the PROGRAM statement.

Note: The system automatically assigns the default value CONCURRENT to maps and subschemas.

NONconcurrent

Specifies the program can be used by only one run unit or task at a time.

ACCess MODule

Identifies the program as an access module.

An access module is the executable form of the SQL statements that a program issues when using the CA IDMS SQL Option.

DIAlog

Identifies the program as a CA ADS dialog.

MAP

Identifies the program as a map.

map HELp

Identifies the program as a help module for use with the CA IDMS Mapping Facility.

PROgram

Identifies the program as either an executable program or a user-defined table.

SUBschema

Identifies the program as a subschema.

TABle

Identifies the program as an edit or code table.

DICTNAme is SYSTEM-default

Indicates the program resides in the load area (DDLDCLOD) of the default dictionary. (Programs that reside in the load area of an alternate dictionary cannot be defined during system generation.)

LOAdlib (default)

Indicates the program resides in a load library. Under z/OS, the load library is identified by the program version number. For example, a program with a version number of 2 resides in the V0002 load library.

LOADLIB is the default when you specify neither the DICTNAME nor the LOADLIB parameter in the PROGRAM statement.

DUMp threshold is dump-count

Specifies the number of times that a dump is to be taken for program check errors that occur in the program. A memory dump is taken each time a program check occurs up to and including the value specified by dump-count. When this limit is reached and additional program check errors occur, the task that uses this program is terminated abnormally with no memory dump.

Dump-count must be an integer in the range 0 through 255. The default is 0. The default of 0 indicates that a dump will be produced every time a program check occurs.

Note: Users can override this parameter at runtime with the DCMT VARY PROGRAM DUMP THRESHOLD command. For more information about DCMT commands, see the CA IDMS System Tasks and Operator Commands Guide.

DYNamic

Allows users to define additional versions of the program at runtime either by means of the DCMT VARY DYNAMIC PROGRAM command or, if the program is eligible for automatic definition, through the definition of null PDEs on the SYSTEM statement.

DYNAMIC is the default when you specify neither DYNAMIC nor NODYNAMIC in the PROGRAM statement.

NODynamic

Prevents users from defining additional versions of the program at runtime. Additionally, the system generation compiler ensures that only one version of the program is included in the system definition.

ENAbled

Indicates the program is enabled at system startup.

ENABLED is the default when you specify neither ENABLED nor DISABLED in the PROGRAM statement.

DISabled

Indicates the program is not enabled at system startup. A DC/UCF system cannot access a disabled program.

Note: Users can override the ENABLED/DISABLED parameter at runtime with the DCMT VARY PROGRAM ENABLE/DISABLE command.

ERRor threshold is error-count

Specifies the number of program check errors that can occur before the program is disabled by the system. When the value specified by error-count is exceeded, the program is not executed and tasks attempting to use the program are terminated abnormally.

Error-count must be an integer in the range 1 through 255. The default is 5.

Note: Users can override this parameter at runtime with the DCMT VARY PROGRAM PROGRAM CHECK THRESHOLD command.

Note: During startup, the system ignores the values for programs ADSOMAIN and ADSORUN1. These programs are assigned an unlimited error count.

ISA size is initial-storage-size

For Assembler and PL/I programs only, specifies the amount of storage, in bytes, allocated for the program's initial storage area (ISA). If an ISA is specified, GET STORAGE statements are not required in the program because the DC/UCF system will automatically allocate the requested storage when the program begins executing. The storage address is passed in register 11.

Initial-storage-size must be an integer in the range 0 through 2,147,483,647. The default is 0.

LANguage

Identifies the language in which the program is written.

Note: The system automatically assigns the default value ASSEMBLER to maps and subschemas.

ADSo

Indicates a CA ADS dialog.

ASSembler

Indicates an Assembler language program.

COBol

Indicates a COBOL language program.

COBOL is the default when you omit the LANGUAGE parameter from the PROGRAM statement.

PLI/PL1

Indicates a PL/I language program. PLI and PL1 are synonyms and can be used interchangeably.

MAInline

For CA ADS dialogs only, indicates the dialog is a mainline dialog. Dialogs defined as MAINLINE are entry points into applications. The names of mainline dialogs are eligible for display on the CA ADS menu screen if so allowed by ADSO statement specifications (described under ADSO Statement.).

If you specify MAINLINE, the dialog must be generated with the MAINLINE attribute but does not have to be assigned a task code during system generation.

MENU

Indicates the dialog you are defining will appear on the CA ADS menu screen.

NOMENU

Indicates the dialog you are defining will not appear on the CA ADS menu screen.

NOMainline

For CA ADS dialogs only, indicates the dialog is not a mainline dialog.

NOMAINLINE is the default when you specify neither MAINLINE nor NOMAINLINE in the PROGRAM statement.

MPMode is

Specifies the multiprocessing mode (MPMODE) for the program.

SYStem

Directs the DC/UCF system to assign an MPMODE to the program at execution time.

SYSTEM is the default when you omit the MPMODE parameter from the PROGRAM statement.

ANY

Assigns an MPMODE of ANY to the program. ANY is appropriate for reentrant and quasireentrant programs that are defined without storage protection.

Note: If you allow programs to run with an MPMODE of ANY, you should install mechanisms and standards to ensure the programs do not simultaneously update shared storage.

MULtiple ENClave is

Specifies whether the program can share the same high level Language Environment process/enclave with other programs in the same task.

ON

Specifies the program can share the same process/enclave with other programs. This option is ignored unless enclave sharing is enabled for the system. ON is the default.

OFF

Specifies that the program must use its own unshared process/enclave.

NEW COPy is

Specifies whether the new copy facility is enabled for the program or subschema.

ENAbled

Enables the new copy facility for the program or subschema. If you specify NEW COPY IS ENABLED, users can issue DCMT VARY PROGRAM NEW COPY commands for the program. If the program is a subschema, users can also issue DC/UCF operator VARY SUBSCHEMA NEW COPY commands.

ENABLED is the default when you omit the NEW COPY parameter from the PROGRAM statement.

DISabled

Disables the new copy facility for the program or subschema.

OVErlayable

Specifies the program can be overlaid in the program pool. You should specify OVERLAYABLE only for executable programs invoked through normal DC mechanisms (for example, LINK or XCTL).

OVERLAYABLE is the default when you specify PROGRAM or LANGUAGE IS COBOL, PLI, or ASSEMBLER in the PROGRAM statement.

NONOverlayable

Specifies the program cannot be overlaid in the program pool. You should specify NONOVERLAYABLE for nonexecutable programs (for example, tables) to prevent such programs from being overwritten in the program pool while they are in use.

NONOVERLAYABLE is the default when you specify MAP, SUBSCHEMA, or TABLE in the PROGRAM statement.

Important! You must specify the NONOVERLAYABLE option for program RHDCMT00.

PROTect

Enables the storage protection feature for the specified program. Storage protection cannot be activated, however, unless the SYSTEM statement also specifies the PROTECT option.

PROTECT is the default when you specify neither PROTECT nor NOPROTECT in the PROGRAM statement.

Note: For more information about storage protection, see Storage Protection.

NOProtect

Indicates the storage protection feature is not enabled for the program.

Note: Users can override the PROTECT/NOPROTECT specification at runtime with the DCMT VARY PROGRAM STORAGE PROTECT command.

QUAsireentrant

For COBOL programs only, specifies the program is quasireentrant. To be declared quasireentrant, a program must not modify its own code unless the program ensures the modified code is returned to its original state when the program is not in control. Quasireentrant programs are permitted to use working storage because each time the program is executed the system creates a separate copy of its working storage in the storage pool. This technique makes the program, in effect, reentrant.

QUASIREENTRANT is the default for COBOL programs.

REEntrant

Specifies the program is reentrant. To be declared reentrant, the program must acquire all variable storage dynamically and must not modify its own code.

REENTRANT is the default for all non-COBOL programs.

Note: The system automatically assigns the default value REENTRANT to maps and subschemas.

NONReentrant

Specifies the program is nonreentrant. Programs that modify their own code and do not ensure the modified code is returned to its original state when the program is not in control must be declared NONREENTRANT.

RESident

Specifies the program is made resident at system startup. Resident programs remain in the DC/UCF region/partition for the duration of system execution.

NONRESident

Specifies the program is not made resident. Nonresident programs are loaded into a program pool as needed and are deleted from the program pool when they are not in use, as dictated by demands for space.

NONRESIDENT is the default when you specify neither RESIDENT nor NONRESIDENT in the PROGRAM statement.

REUSable

Specifies the program can be executed repeatedly. When a request to load the program is issued, the system will load a copy of the program from external storage only if no copy exists in the program pool.

To be declared REUSABLE, a program must return all modified code to its original state for each execution. Generally, code is returned to its original state either at the start of a new execution of the program or at the finish of the previous execution. By definition, reentrant and quasireentrant programs are always reusable; however, reusable programs are not necessarily reentrant or quasireentrant.

REUSABLE is the default when you specify neither REUSABLE nor NONREUSABLE in the PROGRAM statement.

Note: The system automatically assigns the default value REUSABLE to maps and subschemas.

NONREUsable

Specifies that the program cannot be executed repeatedly. When a request to load the program is issued, the system will load a copy of the program from external storage. Programs that modify their own code without returning the code to its original state must be declared NONREUSABLE.

SAVearea

For Assembler programs only, specifies the system will acquire a save area automatically before each execution of the program. The save area address is passed to the program in register 13. You should specify SAVEAREA or accept it by default if the program uses normal IBM calling conventions and, at the start of execution, saves registers in the save area.

SAVEAREA is the default when you specify neither SAVEAREA nor NOSAVEAREA in the PROGRAM statement.

NOSavearea

For Assembler programs only, specifies the system will not acquire a save area for the program automatically.

Note: The system automatically assigns the default value NOSAVEAREA to maps and subschemas.