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
Options must be separated by commas, with no spaces.
Option descriptions
- irlmproc
- Specifies the procedure name of the IRLM to be started.
- 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:
- The value that is specified using MODIFY irlmproc,SET,LTE= if the value is greater than zero.
- The value from LTE= in the irlmproc if the value is greater than zero.
- 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.
The LTE width is determined by the MAXUSRS value. See the MAXUSRS description below for additional information.
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 - MLT= nnnnnU
- 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.
- 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: The 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:- Perform the following steps on each member of the data sharing group.
- 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.
- 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.
- 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:- Shut down the data sharing group.
- Deallocate the lock structure by issuing the z/OS SETXCF FORCE command. For more information, see Deallocating structures by force.
- Restart the data sharing group.
- Perform the following steps on each member of the data sharing group.
- 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.
- nnn
- 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.
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.
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.