Changing the size of the lock structure by rebuilding

One way to change the size of a lock structure is to rebuild the structure.

About this task

If any of the following conditions are true, you must rebuild the lock structure in order to change its size:

  • The lock structure is allocated in a coupling facility at CFLEVEL=0.
  • The allocated size of the structure is already at the maximum size defined by the SIZE parameter of the CFRM policy, and you need to increase the maximum limit.
  • You want to change the size of the lock table portion of the lock structure.
Important: For duplexed lock structures, you change the size of both the primary and secondary structure with a single command.

Procedure

To change the lock structure size through rebuild, first complete at least one of the following procedures:

  • If you are at maximum size or want to increase the maximum size that is available, change the CFRM POLICY SIZE to the size that you want.
    • For information on increasing the maximum size that is defined by the SIZE parameter of the CFRM policy, see Changing the size of the group buffer pool.
    • If you are satisfied with the number of lock table entries that you have been getting, leave the INITSIZE the same. If you want more lock table entries to decrease your contention rate, change the INITSIZE to accommodate the added number of entries, by taking either of the following actions:
      • If you are allowing IRLM to determine how many LTE entries to request, ensure that when you change INITSIZE, it remains a power of 2 so that there is a 1:1 split between the lock table storage and the record table storage. For example, if your current INITSIZE is 16 MB, increase it to 32 MB.
      • If you are controlling the number of lock table entries by specifying LTE= in the IRLMPROC or by issuing the MODIFY irlmproc,SET,LTE= command, your INITSIZE does not need to be a power of 2, but it is still recommended. You do need to ensure that it is large enough to accommodate the storage required for your LTE= value and still large enough to create sufficient record table entries to handle your update volume.
  • If you want to change the size of the lock table:
    1. If your contention rates are low and you want fewer lock table entries, complete the following procedure:
      1. If you are letting IRLM control the number of lock entries to request, you must decrease the INITSIZE by a power of 2.
        Important: This also decreases the record table size by half.
      2. If you want to control the number of lock table entries to request, issue the MODIFY irlmproc,SET,LTE= command, where the LTE= value reduces the current number of lock entries by half. For example, assume that you currently have 16 MB lock entries, specify:
        MODIFY irlmproc,SET,LTE=8
        This method increases the number of record table entries, because the INITSIZE is not altered.
    2. If your contention rates are high and you want more lock table entries, complete the following procedure:
      1. If you are letting IRLM control the number of lock entries to request, you should increase the INITSIZE by a power of 2. This also doubles the size of the record table.
      2. If you want to control the number of lock table entries to request, issue the MODIFY irlmproc,SET,LTE= command, where the LTE= value increases the current number of lock entries by powers of 2. For example, assume that you currently have 8 MB of lock entries, specify:
        MODIFY irlmproc,SET,LTE=16
        Important: This method decreases the number of record table entries if the INITSIZE is not altered.
        If the INITSIZE is not large enough to provide the lock table storage and adequate record table storage, you will experience failures when trying to write RLE to the coupling facility. If you do not want the record table size to change, you must increase the INITSIZE by the same amount of storage that will be used by the additional lock table entries. For example, assume that you currently have 8 MB of lock table entries and you issue the following command:
        MODIFY irlmproc,SET,LTE=16
        With an INITSIZE of 32 MB, you will not have any storage left for record table entries. Determine the additional storage needed by using the following formula:
        (lock table entries (new) - lock table entries (old)) x 2 bytes =
        additional storage for lock entries
        In this example:
        (16MB - 8MB) x 2 bytes = 16MB
        So adding 16 MB to the original INITSIZE of 32 MB will result in the new INITSIZE of 48 MB.

What to do next

Start of changeAfter you complete either of the previously described procedures, issue the following command to start the rebuild of the lock structures:
SETXCF START,REBUILD,STRNAME=lock-structure-name
End of change