START irlmproc (z/OS IRLM)

The START irlmproc command starts an IRLM component with a procedure that is defined by the installation. Symbolic parameters in the procedure can be overridden on the START irlmproc command.

Environment

This command can be issued only from a z/OS® console.

Data sharing scope: Member

Authorization

The command requires an appropriate level of operating system authority.

Syntax

Read syntax diagramSkip visual syntax diagramSTARTirlmproc,,DEADLOK=' iiii, kkkk'IRLMGRP=' irlm-group-name'IRLMID= nIRLMNM= irlmnameLOCKTABL= irlmltnmLTE= nnnnMLT= nnnnnUMAXCSA=MAXUSRS= nnnPC=PGPROT=YESNOSCOPE=LOCALGLOBALNODISCONTRACE=NOYESnnn

Options must be separated by commas, with no spaces.

Option descriptions

irlmproc
Specifies the procedure name of the IRLM to be started.
None of the following options are required:
DEADLOK=' iiii,kkkk '
Specifies the local deadlock-detection interval in seconds ( iiii ), and the number of local cycles ( kkkk ) that are to occur before a global detection is initiated.
iiii
Is a one- to four-digit number. Values between 1 and 5 are interpreted as seconds. Values between 100 and 5000 are interpreted as milliseconds. Depending on the value that you enter, IRLM might substitute a smaller maximum value.
kkkk
Is a one- to four-digit number from 1 to 9999 that specifies the number of local deadlock cycles that must expire before global deadlock detection is performed. You can specify any value from 1 to 9999, but IRLM uses 1. The recommended value to specify is 1.

In a data sharing environment, IRLM synchronizes all of the DEADLOK values in the group to the values specified on the most recent IRLM to join the group. The DEADLOK values can be changed by starting a member with the values that you want. To reduce confusion, it is recommended that the installation specify the same value for DEADLOK on all of its IRLM startup procedures and use the START irlmproc command to override this value only when the interval must be increased from its original value.

IRLMGRP=' irlm-group-name '
Specifies the name of the cross system coupling facility (XCF) group, in a data sharing environment, to which the IRLM belongs as the lock manager for DBMSs that share the same data. All IRLMs in the same group must specify the same value for LOCKTABL and unique values for IRLMID.

The group name is used as the XCF group name. The name must not start with 'SYS' and must not be the same name specified for LOCKTABL.

In a non-data-sharing environment (SCOPE=LOCAL), IRLMGRP is ignored.

IRLMID= n
Specifies a decimal number that is used to distinguish between IRLMs in a data sharing group.

n can be either a one- to three-digit number from 1 to 255, or a printable character in quotation marks. Note that this IRLM ID does not relate directly to the limit of IRLM members that can be in the group. That limit is determined by the current hardware limits (currently 32).

When n is specified as a printable character, IRLM uses the EBCDIC value of the printable character as the IRLMID (such as X'C4'). The printable character must be surrounded by enough single quotes to permit IRLM to see it as a printable character. Because of the way that the operating system interprets quotes, single quotes must be on either side of the characters. For example, if you want to specify the printable character 'D', you must specify it here as IRLMID='D'.

A unique IRLMID must be specified for each IRLM in a group (IRLMs with the same value specified for the IRLMGRP option).

IRLMNM= irlmname
Specifies a 4-byte z/OS subsystem name assigned to this IRLM. (Although z/OS can accept names that are less than 4 bytes, IRLM requires a 4-byte name.)
LOCKTABL= irlmltnm
Specifies the lock table to be used by this group. This option is overridden by Db2; it is needed in an IMS environment.

In a non-data-sharing environment (SCOPE=LOCAL), LOCKTABL is ignored.

LTE= nnnn
Specifies the number of lock table entries that are required in the coupling facility (CF) lock structure in units of 1048576 entries. LTE= can have a value of blank, zero, or any exact power of two up to 2048 (inclusive). The number of lock table entries in the group is determined by the first IRLM to connect to the group during initial structure allocation or during REBUILD.
The LTE value is used in the following order:
  1. The value that is specified using MODIFY irlmproc,SET,LTE= if the value is greater than zero.
  2. The value from LTE= in the irlmproc if the value is greater than zero.
  3. The value that is determined by the existing logic, which divides the XES structure size returned on the IXCQUERY call by two times LTE width. The result is rounded to the nearest power of two, which the existing logic uses for the value.

    Start of changeThe LTE width is determined by the MAXUSRS value. See the MAXUSRS description below for additional information.End of change

If IRLM attempts to use a value from MODIFY irlmproc,SET,LTE= that is greater than the available storage in the structure size returned by XES IXCQUERY, the value for the LTE= in the irlmproc is used. If this value is greater than the available storage, IRLM uses the value that is determined by the existing logic.
Table 1. Some common values for lock table entries and the required lock table storage
For LTE= Lock Table Storage needed for 2-byte entries Lock Table Storage needed for 4-byte entries
8 16 MB 32 MB
16 32 MB 64 MB
32 64 MB 128 MB
64 128 MB 256 MB
128 256 MB 512 MB
256 512 MB 1024 MB
Start of changeMLT= nnnnnU End of change
Start of change Specifies the upper limit of private storage above the two gigabyte bar, also called the MEMLIMIT, that is managed by MVS™. This storage is used for locks and deadlock processing. The value nnnnn is a five digit number in the range 1 through 99999. U is a one character unit indicator with the value of M for megabytes, G for gigabytes, T for terabytes, or P for petabytes. The MLT value that is specified for IRLM must be at least 2 GB. The setting of the MEMLIMIT value through the MLT parameter is temporary, holding only as long as the execution of the IRLM instance. To make a permanent MEMLIMIT change, update the MEMLIMIT value in the corresponding IRLM startup procedure.End of change
MAXCSA=
MAXCSA= is a required positional parameter but is currently unused.
MAXUSRS= nnn
Specifies the initial maximum number of members in the data sharing group, set by the IRLM which results in structure allocation. The specified value determines the size of each lock entry in the lock table portion of the lock structure, as shown in the following table.
Table 2. Effect of MAXUSRS on initial widths of lock table entries
MAXUSRS value range Initial width of each LTE
7 or less 2 bytes
≥ 8 and < 24 4 bytes
≥ 24 and < 33 8 bytes

nnn must be a one- to two-digit number from 1 to 32. The default is 7. The recommended value is 7 or less.

In a non-data-sharing environment (SCOPE=LOCAL), MAXUSRS is ignored.

Important: Start of changeThe lock table entry (LTE) width does not change when the number of lock table entries changes. To increase the LTE width, you first need to perform these steps:
  1. Perform the following steps on each member of the data sharing group.
    1. Increase the MAXUSRS value to a value in a higher MAXUSRS range. For example, if MAXUSRS is changed from 7 to 8, the value is in a higher MAXUSRS range.
    2. Restart the data sharing group member.

    You can perform the steps above on all members at the same time, or serially, over a period of time.

  2. Rebuild the lock structure for the data sharing group.
When MAXUSRS is changed to a value in a lower MAXUSRS range (for example, from 8 to 7), the LTE width does not change as long as the lock structure remains allocated. To reduce the LTE width, you need to perform these steps:
  1. Shut down the data sharing group.
  2. Deallocate the lock structure by issuing the z/OS SETXCF FORCE command. For more information, see Deallocating structures by force.
  3. Restart the data sharing group.
End of change
PC=
PC= is a required positional parameter but is currently unused.
PGPROT=
Specifies whether the IRLM load modules that are resident in common storage are placed in z/OS page-protected storage.
YES
The IRLM load modules that are resident in common storage are placed in z/OS page-protected storage.
NO
The IRLM load modules that are resident in common storage are not placed in z/OS page-protected storage.
SCOPE=
Specifies whether the IRLM is to be used in a data sharing environment.
LOCAL
Specifies the IRLM is in a non-data-sharing environment and there is no intersystem sharing.
GLOBAL
Specifies the IRLM is in a data sharing environment and that intersystem sharing is to be performed.
NODISCON
Specifies that IRLM is in a data sharing environment and that intersystem sharing is to be performed. IRLM remains connected to the data sharing group even when no database management systems are identified to it. You must explicitly stop IRLM to bring it down.

If you specify the NODISCON option, there is less impact on other systems when a Db2 subsystem fails because the operating system is not required to perform certain recovery actions that it normally performs when IRLM comes down. Using the NODISCON option might allow Db2 to restart more quickly after a Db2 subsystem normally or abnormally terminates because it does not have to wait for IRLM to rejoin the IRLM data sharing group.

TRACE=
Specifies whether the IRLM is to capture traces in wrap-around IRLM buffers. Each buffer is reused when the previous buffer is filled. Traces are captured at IRLM startup. You should specify TRACE=YES in the irlmproc procedure to place traces in wrap-around mode.
NO
Does not initialize trace activity during IRLM startup. NO is the default.

The TRACE CT command can be used to trace IRLM activity after IRLM startup.

YES
Initializes IRLM trace activity during startup.
Start of changennnEnd of change
Start of change Specifies the number of z/OS component trace (CTRACE) buffers, and initializes all IRLM CTRACE activities during startup. nnn must be in the range 10 to 255.End of change

Examples

Example: This command starts the IRLM with a lock table storage size of 64 MB, assuming a width of 2-bytes for each lock table entry.

Enter the following command on the system console:
S irlmproc,LTE=32

If this value is correct, message DXR132I, which is displayed after successful connection to the lock structure, displays the value used by IRLM. If this value is incorrect, START will terminate with DXR116E CODE=24 and ABENDU2018. This value is only used if SCOPE=GLOBAL or SCOPE=NODISCON and has a default value calculated by IRLM.