[an error occurred while processing this directive]

HP OpenVMS Systems Documentation

Content starts here

HP OpenVMS DCL Dictionary


Previous Contents Index


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


Parameters

None.

Description

Multiblocking and multibuffering of file operations can enhance the speed of I/O operations with RMS. The defaults set with the SET RMS_DEFAULT command are applied for all file operations that do not specify explicit multiblock or multibuffer counts.

For more information on multiblock and multibuffer operations, see the HP OpenVMS System Services Reference Manual.

For indexed files, the SET RMS_DEFAULT command defines default prolog level options.

For sequential files, the SET RMS_DEFAULT command defines default extensions. If a default extension is not specified in your program, the process or system default is used.

For network operations, the SET RMS_DEFAULT command defines network buffer sizes for transfer.


Qualifiers

/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.

/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.

/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_DEFAULT (default) Use system setting. Note that this keyword is disallowed with /SYSTEM.

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

Keyword Description
NEVER (default) Never use the higher overhead option to improve 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.

/DISK

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

/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.

/INDEXED

Applies the multibuffer default to indexed file operations.

/MAGTAPE

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

/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.

/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.

/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_DEFAULT (default) Use system setting. Note that this keyword is disallowed with /SYSTEM.

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 (default) Use RMS's default record locking for images run within this process.

There is no system parameter associated with the QUERY_LOCK setting.

/RELATIVE

Applies the multibuffer default to relative file operations.

/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.

/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.

/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.

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).


Previous Next Contents Index