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