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