DCMT VARY DYNAMIC PROGRAM

DCMT VARY DYNAMIC PROGRAM dynamically defines programs to the system at system run time. The system uses information supplied in the DCMT VARY DYNAMIC PROGRAM command to build a program definition element (PDE) for the program. Programs defined in this way exist only for the duration of system execution and have no effect on the system definition stored in the data dictionary.
idmscu19
DCMT VARY DYNAMIC PROGRAM dynamically defines programs to the system at system run time. The system uses information supplied in the DCMT VARY DYNAMIC PROGRAM command to build a program definition element (PDE) for the program. Programs defined in this way exist only for the duration of system execution and have no effect on the system definition stored in the data dictionary.
This article describes the following information:
Syntax
►►─── DCMT ─┬───────────────────┬─────────────────────────────────────────────►             └─ 
broadcast-parms
 ─┘  ►─── Vary Dynamic Program ───────────────────────────────────────────────────►  ►──┬──────────────────────┬─ 
program-name
 ─┬──────────────────────────┬──────►     └─ 
dictnode
.
dictname
 ──┘                └─ Version 
version-number
 ─┘  ►─┬─────────────┬────────────────────────────────────────────────────────────►    ├─ PROgram ◄──┤    ├─ MAP ───────┤    ├─ SUBSCHEMA ─┤    ├─ TABle ─────┤    └─ DIAlog ────┘  ►─┬─────────────┬────────────────────────────────────────────────────────────►    ├─ COBol ◄────┤    ├─ ASsembler ─┤    ├─ PLI ───────┤    └─ ADSo ──────┘  ►─┬─────────────────┬────────────────────────────────────────────────────────►    ├─ CONcurrent ◄───┤    └─ NONConcurrent ─┘  ►─┬──────────┬───────────────────────────────────────────────────────────────►    └─ DELete ─┘  ►─┬───────────────────────────────────┬──────────────────────────────────────►    └─ DUMp threshold ─┬─ 
dump-count
 ─┬─┘                       └─ 0 ◄─────────┘  ►─┬─────────────┬────────────────────────────────────────────────────────────►    ├─ ENabled ◄──┤    └─ DISabled ──┘  ►─┬─────────────────────────────────────┬────────────────────────────────────►    └─ ERror threshold ─┬─ 
error-count
 ─┬─┘                        └─ 5 ◄──────────┘  ►─┬──────────────────────────────────────┬───────────────────────────────────►    └─ ISA size ─┬─ 
initial-storage-size
 ─┬┘                 └─ 0 ◄───────────────────┘  ►─┬──────────────┬───────────────────────────────────────────────────────────►    ├─ MAINline ◄──┤    └─ NOMAINline ─┘  ►─┬───────────────────────────────────┬──────────────────────────────────────►    └─ MULtiple ENClave is ─┬─ OFF ──┬──┘                            └─ ON ◄──┘  ►─┬───────────────────────────┬──────────────────────────────────────────────►    └─ NEW copy ─┬─ Enabled ◄──┬┘                 └─ Disabled ──┘  ►─┬──────────────────┬───────────────────────────────────────────────────────►    ├─ OVerlayable ◄───┤    └─ NONOverlayable ─┘  ►─┬──────────────┬───────────────────────────────────────────────────────────►    ├─ PROTect ◄───┤    └─ NOPRotect ──┘  ►─┬──────────────────┬───────────────────────────────────────────────────────►    ├─ REEntrant ◄─────┤    ├─ NONREEntrant ───┤    └─ QUAsireentrant ─┘  ►─┬───────────────┬──────────────────────────────────────────────────────────►    ├─ REUsable ◄───┤    └─ NONREusable ─┘  ►─┬──────────────┬───────────────────────────────────────────────────────────►    ├─ SAVearea ◄──┤    └─ NOSAvearea ─┘       ┌─Required space       ▼  ►───  . ─────────────────────────────────────────────────────────────────────►◄
Parameters
  • broadcast-parms
    Indicates to execute the DCMT command on all or a list of data sharing group members.
    For more information about broadcasting and 
    broadcast-parms
     syntax, see How to Broadcast System Tasks.
  • Dynamic Program
    Defines, modifies, or deletes the PDE for a specified program.
  • dictnode
    Identifies the DDS node that controls the data dictionary in which the named program resides.
    Be sure to code this parameter if the named program resides in a data dictionary on a DDS system.
  • dictname
    Identifies the data dictionary in which the named program resides.
    Be sure to code this parameter if the named program resides in a data dictionary.
  • program-name
    The name of one of the following types of program load modules:
    • A program that is not currently defined to the system.
    • A program that you created by a previous VARY DYNAMIC PROGRAM command.
    If the named program is already defined to the system, VARY DYNAMIC PROGRAM modifies in the program's PDE only those parameters that you specify in the VARY DYNAMIC PROGRAM command.
  • version-number
    Specifies the version number of the specified program. The default is 1.
  • PROgram
    Identifies the program type of the named program as PROGRAM. This is the default program type.
  • MAP
    Identifies the program type of the named program as MAP.
  • SUBschema
    Identifies the program type of the named program as SUBSCHEMA.
  • TABle
    Identifies the program type of the named program as TABLE.
  • DIAlog
    Identifies the program type of the named program as DIALOG.
  • COBol
    Identifies COBOL as the language of the named program. COBOL is the default program language.
  • ASsembler
    Identifies Assembler as the language of the named program.
  • PLI
    Identifies PL/I as the language of the named program.
  • ADSo
    Identifies the named program as a CA ADS dialog.
  • CONcurrent
    Specifies that the program can be used by multiple transactions and/or multiple tasks at the same time. CONCURRENT is the default.
  • NONConcurrent
    Specifies that the program can be used by only one transaction or task at a time.
  • DELete
    Deletes the definition of the named program from the run-time system. The task code associated with the program must be deleted before the program can be deleted. DELETE can also be used to delete automatically defined programs. See Usage below.
  • DUMp threshold
    Specifies the number of times a memory dump is taken for program check errors that occur in the named program.
    • dump-count
      An integer in the range 0 through 255. The default is 0.
  • ENabled
    Enables the named program. ENABLED is the default.
  • DISabled
    Disables the named program. Disabling a program prevents it from being executed until it is enabled.
  • ERror threshold
    Specifies the number of program check errors that can occur in the named program before DC/UCF disables the program.
    • error-count
      An integer in the range 1 through 255. The default is 5.
  • ISA size
    For Assembler and PL/I programs, specifies the amount of storage, in bytes, to be allocated for the initial storage area (ISA) of the named program.
    • initial-storage-size
      An integer in the range 0 through 32767. The default is 0.
  • MAINline
    Indicates that the named program is a mainline dialog.
  • NOMAINline
    Indicates that the named program is not a mainline dialog.
  • MULtiple ENClave is
    Specifies if this program can use the same language enclave as other LE programs in the same task. This parameter is only meaningful for COBOL programs.
    • OFF
      Specifies that this program cannot participate in a multiple program LE enclave.
    • ON
      Specifies that this program can participate in a multiple program LE enclave. This is the default.
      This value is only effective if the sysgen contains a SYSTEM statement with MULTIPLE ENCLAVE IS ON.
  • NEW copy Enabled
    Indicates that the new copy facility is enabled for the named program. Enabling the new copy facility permits the user to subsequently issue DCMT VARY PROGRAM NEW COPY requests for the program. ENABLED is the default.
  • NEW copy Disabled
    Indicates that the new copy facility is disabled for the named program.
  • OVerlayable
    Indicates that the named program can be overlaid in the program pool. OVERLAYABLE is the default.
  • NONOverlayable
    Indicates that the named program cannot be overlaid in the program pool.
  • PROtect
    Enables storage protection for the named program. PROTECT is the default.
    Storage protection cannot be enabled for a program unless the PROTECT option is specified in the system generation SYSTEM statement.
  • NOPRotect
    Disables storage protection for the named program.
  • REEntrant
    Indicates that the named program is reentrant. REENTRANT is the default.
  • NONREEntrant
    Indicates that the named program is non-reentrant.
  • QUAsireentrant
    Indicates that the named program is quasi-reentrant.
    This refers to COBOL programs compiled with versions of COBOL before COBOL II.
  • REUsable
    Specifies that the program can be executed repeatedly. REUSABLE is the default.
    When a program is reusable, a request to load the program causes the system to load a copy from external storage only if no copy exists in the program pool.
  • NONREUsable
    Specifies that the program cannot be executed repeatedly.
    When a program is non-reusable, a request to load the program requires the system to load a copy from external storage.
  • SAVearea
    Specifies that the system is to acquire a save area automatically before each execution of the named program.
  • NOSAvearea
    Specifies that the system is
    not
    to acquire a save area automatically before each execution of the named program.
  • .
    The space and the period together are required and signal the end of the statement.
Usage
Typically Used in Test Environment
Typically, VARY DYNAMIC PROGRAM is used in a test environment to accommodate new programs without shutting down the entire system. This allows you to execute programs that you have defined at runtime. All programs are eligible for dynamic definition, provided that they have
not
yet been defined to the system.
Modifying Dialogs, Edit and Code Tables, Maps, Subschemas
Dialogs, edit and code tables, maps, subschemas, and any other programs created by using a CA IDMS compiler or definition tool are automatically defined to the system when you generate them. To modify these programs, use the DCMT VARY PROGRAM command. DCMT VARY
DYNAMIC
PROGRAM typically is not appropriate for these entities.
Restricting Dynamic Definitions of New Program Versions
To restrict users from dynamically defining additional versions of a specific program, include the NODYNAMIC clause in the system generation PROGRAM statement that defines the program to the system.
Deleting Program Definition Elements (PDEs)
You can use the DCMT VARY DYNAMIC PROGRAM command to delete PDEs for automatically defined programs. Automatically defined programs are generated and defined to the system by DC/UCF compilers and definition tools. The number of these PDEs originally available to your system is specified by the UNDEFINED PROGRAM COUNT clause of the system generation SYSTEM statement.
Load (core-image) Libraries
If you do not identify a data dictionary by DICTNODE and/or DICTNAME as described above, DC/UCF assumes that the module resides in a load (core-image) library. If the program resides in a data dictionary, be sure to specify the dictionary and controlling DDS node (when necessary) in the DCMT VARY DYNAMIC PROGRAM command.
Examples
DCMT V D PROGRAM ... QUASIREENTRANT .
      VARY DYNAMIC PROGRAM CSFPSDLE COBOL QUASIREENTRANT . IDMS DC273001 V105 USER:JSMITH   Program CSFPSDLE Added
DCMT V D PROGRAM ... REENTRANT NOSAVEAREA .
      VARY DYNAMIC PROGRAM MISPUDBN ASSEMBLER REENTRANT NOSAVEAREA . IDMS DC273001 V105 USER:JSMITH   Program MISPUDBN Added