VMS Help  —  SET  RMS_DEFAULT
    Defines default values for multiblock and multibuffer counts,
    network transfer sizes, prolog level, extend quantity, and the
    query lock option used by OpenVMS Record Management Services
    (RMS) for file operations.

    If you set the default value for either the multiblock count or
    the multibuffer count at 0, RMS tries to use the process default
    value or the system default value, in that order. If these are
    set at 0, RMS uses a default value of 1. Defaults are set for
    sequential, relative, or indexed file organizations on a process-
    only basis, unless a systemwide basis is requested.

    Format

      SET RMS_DEFAULT

1  –  Qualifiers

1.1    /BLOCK_COUNT

       /BLOCK_COUNT=count

    Specifies a default multiblock count (0 to 127) for record
    I/O operations only, where count is the number of blocks to be
    allocated for each I/O buffer.

    For more information on multiblock count, see the description of
    the RAB$B_MBC in the OpenVMS Record Management Services Reference
    Manual.

1.2    /BUFFER_COUNT

       /BUFFER_COUNT=count

    Specifies a default multibuffer count (0 to 255) for local file
    operations, where count is the number of buffers to be allocated.
    If you use the /SYSTEM qualifier to extend the default value
    systemwide, the maximum default value is 127.

    When you use the /BUFFER_COUNT qualifier, you can use the /DISK,
    /INDEXED, /MAGTAPE, /RELATIVE, /SEQUENTIAL, and /UNIT_RECORD
    qualifiers to specify the types of file for which the default
    is to be applied. If the /BUFFER_COUNT qualifier is specified
    without any of these qualifiers, the /SEQUENTIAL qualifier is
    assumed. If file type is not specified, the default is applied to
    sequential files.

    For more information on multibuffer count, see the description
    of the RAB$B_MBF field in the OpenVMS Record Management Services
    Reference Manual.

1.3    /CONTENTION_POLICY

       /CONTENTION_POLICY=keyword [/SYSTEM]

    Allows you to specify fairness under high contention conditions
    for write-shared files at the process or system level. Note that
    selecting this option may noticeably increase locking overhead.

    This option is disabled by default.

    In a mixed cluster environment with high contention for specific
    buckets, it is possible for accesses to write-shared files on
    nodes using read-mode global bucket locking to dominate access
    to a bucket. Nodes without this support might be denied timely
    access to the bucket.

    Additionally, it is possible to observe comparable behavior on
    all OpenVMS versions when dealing with accesses to write-shared
    files without global buffers enabled. A similar fairness issue
    between lock conversions and new lock requests may be observed in
    which the new lock requests may remain ungranted for an extended
    period of time. Use the /CONTENTION_POLICY qualifier to specify
    fairness under high contention conditions.

    The following table lists valid PROCESS keywords (/SYSTEM not
    specified):

    Keyword        Description

    NEVER          Never use the higher overhead option to improve
                   fairness for any write-shared files accessed by
                   this process; minimal overhead.
    SOMETIMES      Use this option for fairer bucket access (but
                   higher overhead) to any write-shared files with
                   global buffers enabled accessed by this process.
    ALWAYS         Use this option for fairer bucket access (but
                   higher overhead) to all write-shared files
                   accessed by this process.
    SYSTEM_        Use system setting. Note that this keyword is
    DEFAULT        disallowed with /SYSTEM.
    (default)

    The following table lists valid SYSTEM keywords (/SYSTEM also
    specified):

    Keyword        Description

    NEVER          Never use the higher overhead option to improve
    (default)      fairness for any write-shared files accessed on
                   the system; minimal overhead.
    SOMETIMES      Use this option for fairer bucket access (but
                   higher overhead) to any write-shared files with
                   global buffers enabled accessed on the system.
    ALWAYS         Use this option for fairer bucket access (but
                   higher overhead) to all write-shared files
                   accessed on the system.

1.4    /DISK

    Applies the specified defaults to disk file operations. Values
    applied using the /SEQUENTIAL qualifier take precedence over
    values applied using the /DISK qualifier.

1.5    /EXTEND_QUANTITY

       /EXTEND_QUANTITY=n

    Specifies the number of blocks n to extend a sequential file
    where n can range from 0 to 65535. If you do not specify the
    /EXTEND_QUANTITY qualifier, RMS calculates its own extend value.
    The /EXTEND_QUANTITY qualifier value is used when the program
    does not specify an extent quantity explicitly.

1.6    /INDEXED

    Applies the multibuffer default to indexed file operations.

1.7    /MAGTAPE

    Applies the multibuffer default to magnetic tape operations.
    Values applied using the /SEQUENTIAL qualifier take precedence
    over values applied using the /MAGTAPE qualifier.

1.8    /NETWORK_BLOCK_COUNT

       /NETWORK_BLOCK_COUNT=count

    Specifies a default block count (0 to 127) for network access to
    remote files, where count is the number of blocks to be allocated
    for each I/O buffer.

    For remote file access, the buffer size is negotiated between
    RMS and the remote system's file access listener (FAL) with the
    smaller of the two sizes being selected.

    Thus, the /NETWORK_BLOCK_COUNT value places an upper limit on
    the network buffer size that is used. It also places an upper
    limit on the largest record that may be transferred to or from
    a remote file. The largest record must be less than or equal to
    512*network_block_count. (The network_block_count is in block
    units and the record is in byte units.)

    If you omit the value or specify a value of 0, RMS uses the
    systemwide block count value. If this value is also 0, RMS uses a
    size of one block.

1.9    /PROLOG

       /PROLOG=n

    Specifies a default prolog level for indexed files where
    acceptable values for n are 0, 2, or 3. If 0 (default) is
    specified, RMS sets an appropriate prolog level.

1.10    /QUERY_LOCK

       /QUERY_LOCK=keyword [/SYSTEM]

    Enables or disables query locking at the process and system
    levels.

    The following table lists valid PROCESS keywords (/SYSTEM not
    specified):

    Keyword        Description

    DISABLE        Disable query locking for the duration of any
                   file opens done by images within the process for
                   any read ($GET or $FIND) record operations that
                   have both RAB$V_NLK (no lock) and RAB$V_RRL (read-
                   regardless) set in the RAB$L_ROP field of the RAB
                   (Record Access Block). Disabling query locking
                   directs RMS not to make any calls to the lock
                   manager for a read record operation just to find
                   out whether a record is locked by another stream.
    ENABLE         Use RMS's default record locking for images run
                   within this process.
    SYSTEM_        Use system setting. Note that this keyword is
    DEFAULT        disallowed with /SYSTEM.
    (default)

    The following table lists valid SYSTEM keywords (/SYSTEM also
    specified):

    Keyword        Description

    DISABLE        Disable query locking for the duration of any
                   file opens done by images on the system for any
                   read ($GET or $FIND) record operations that have
                   both RAB$V_NLK (no lock) and RAB$V_RRL (read-
                   regardless) set in the RAB$L_ROP field of the RAB
                   (Record Access Block). Disabling query locking
                   directs RMS not to make any calls to the lock
                   manager for a read record operation just to find
                   out whether a record is locked by another stream.
    ENABLE         Use RMS's default record locking for images run
    (default)      within this process.

    There is no system parameter associated with the QUERY_LOCK
    setting.

1.11    /RELATIVE

    Applies the multibuffer default to relative file operations.

1.12    /SEQUENTIAL

       /SEQUENTIAL (default)

    Applies the multibuffer default to sequential file operations.
    The /SEQUENTIAL qualifier overrides values applied using either
    the /DISK, the /MAGNETIC TAPE, or the /UNIT RECORD qualifier.

    The /SEQUENTIAL qualifier is the default if you do not specify
    either the /RELATIVE or the /INDEXED qualifier.

1.13    /SYSTEM

    Requires CMKRNL (change mode to kernel) privilege.

    Applies specified defaults on a systemwide basis to all file
    operations.

    Systemwide settings are implemented as system parameters, with
    the exception of /QUERY_LOCK. For a systemwide setting to survive
    a system reboot, it must be written to the system parameter file
    by using SYSGEN.

1.14    /UNIT_RECORD

    Applies the multibuffer default to file operations on unit record
    devices. Values applied using the /SEQUENTIAL qualifier take
    precedence over values applied using the /UNIT_RECORD qualifier.

2  –  Examples

    1.$ SET RMS_DEFAULT/BLOCK_COUNT=24
      $ SHOW RMS_DEFAULT

              MULTI- |              MULTIBUFFER COUNTS            | NETWORK
              BLOCK  | Indexed Relative         Sequential        |  BLOCK
              COUNT  |                  Disk Magtape  Unit Record |  COUNT
      Process  24    |    0        0      0     0          0      |    0
      System   16    |    0        0      0     0          0      |    8

               Prolog    Extend Quantity     QUERY_LOCK
      Process    0              0            System
      System     0              0            Enabled

               CONTENTION_POLICY
      Process      System
      System       Never

      The SET RMS_DEFAULT command in this example sets the multiblock
      count for disk file I/O at 24 for user programs that do not set
      the multiblock count explicitly. The command applies only to
      the current process.

    2.$ SET RMS_DEFAULT/BUFFER_COUNT=8/MAGTAPE
      $ SHOW RMS_DEFAULT

              MULTI- |              MULTIBUFFER COUNTS            | NETWORK
              BLOCK  | Indexed Relative         Sequential        |  BLOCK
              COUNT  |                  Disk Magtape  Unit Record |  COUNT
      Process   0    |    0         0     0     8          0      |    0
      System   16    |    0         0     0     0          0      |    8

               Prolog    Extend Quantity     QUERY_LOCK
      Process    0              0            System
      System     0              0            Enabled

               CONTENTION_POLICY
      Process      System
      System       Never

      The SET RMS_DEFAULT command in this example defines the default
      multibuffer count for I/O magnetic tape operations at 8.

    3.$ SET RMS_DEFAULT/BUFFER_COUNT=7/NETWORK_BLOCK_COUNT=16/SYSTEM
      $ SHOW RMS_DEFAULT

              MULTI- |              MULTIBUFFER COUNTS            | NETWORK
              BLOCK  | Indexed Relative         Sequential        |  BLOCK
              COUNT  |                  Disk Magtape  Unit Record |  COUNT
      Process   0    |    0        0      0     0          0      |    0
      System   16    |    0        0      7     7          0      |   16

               Prolog    Extend Quantity     QUERY_LOCK
      Process    0              0            System
      System     0              0            Enabled

               CONTENTION_POLICY
      Process      System
      System       Never

      The SET RMS_DEFAULT command in this example defines the
      systemwide default multibuffer count at 7 for all sequential
      file operations on disk, magnetic tape, and unit record
      devices. The command also sets the network block count at 16.

    4.$ SET RMS_DEFAULT/EXTEND=50/INDEXED/BUFFER_COUNT=5
      $ SHOW RMS_DEFAULT

              MULTI- |              MULTIBUFFER COUNTS            | NETWORK
              BLOCK  | Indexed Relative         Sequential        |  BLOCK
              COUNT  |                  Disk Magtape  Unit Record |  COUNT
      Process   0    |    5         0     0     0          0      |    0
      System   16    |    0         0     0     0          0      |    8

               Prolog    Extend Quantity     QUERY_LOCK
      Process    0             50            System
      System     0              0            Enabled

               CONTENTION_POLICY
      Process      System
      System       Never

      The SET RMS_DEFAULT command in this example sets the default
      multibuffer count for I/O operations on indexed files at 5.
      It also defines the default extend quantity for sequential
      I/O operations at 50 blocks. These defaults apply only to disk
      operations for user programs that do not set the multiblock
      count explicitly. These defaults are limited to the current
      process.

    5.$ SET RMS_DEFAULT/QUERY_LOCK=DISABLE
      $ SHOW RMS_DEFAULT

              MULTI- |              MULTIBUFFER COUNTS            | NETWORK
              BLOCK  | Indexed Relative         Sequential        |  BLOCK
              COUNT  |                  Disk Magtape  Unit Record |  COUNT
      Process   0    |    0        0      0     0          0      |    0
      System   16    |    0        0      0     0          0      |    8

               Prolog    Extend Quantity     QUERY_LOCK
      Process    0              0            Disabled
      System     0              0            Enabled

               CONTENTION_POLICY
      Process      System
      System       Never

      The SET RMS_DEFAULT command in this example requests that query
      locking be disabled for the duration of any file opens done by
      images within this process for any read ($GET or $FIND) record
      operations that have both RAB$V_NLK (no lock) and RAB$V_RRL
      (read-regardless) set in the RAB$L_ROP field of the RAB (Record
      Access Block).
Close Help