Document revision date: 30 March 2001

## OpenVMS DCL Dictionary

Previous | Contents | Index

## SET RESTART_VALUE

> Assigns a value to the global symbol BATCH$RESTART. This global symbol defines the location at which a batch job is restarted after its execution has been interrupted. The SET RESTART_VALUE command is meaningful only in command procedures.

### Format

> SET RESTART_VALUE =string

### Parameter

> #### string

> Specifies a string of up to 255 characters, which specifies the label at which the batch job should begin executing when it is restarted.

### Description

> Use the SET RESTART_VALUE command in restartable command procedures. (A restartable command procedure is a command procedure that is submitted to run in batch mode with the SUBMIT/RESTART command.) SET RESTART_VALUE assigns a value to the global symbol BATCH$RESTART, the location at which the batch job should be restarted after its execution has been interrupted.

> When writing a restartable command procedure, begin each possible starting point in the command procedure with a label. After the label, use the SET RESTART_VALUE command to assign the symbol BATCH$RESTART to equal the label. If the batch job is interrupted by a system crash and is then restarted, the command procedure can resume execution at the label pointed to by BATCH$RESTART.

> The SET RESTART_VALUE command is used in conjunction with the reserved global symbol $RESTART. $RESTART is a special symbol that is maintained by the system and cannot be deleted. $RESTART has the value TRUE if the batch job has been restarted; otherwise, $RESTART has the value FALSE.

> At the beginning of a restartable command procedure, test the value of the reserved global symbol $RESTART. If $RESTART is true, execute a GOTO statement using the symbol BATCH$RESTART as the transfer label. If a SET RESTART_VALUE command was not executed before the batch job was interrupted, the symbol BATCH$RESTART has no definition and the batch job should restart from the beginning.

> Most of your process environment is not maintained when the system fails. The only symbols maintained across a system failure are $RESTART and BATCH$RESTART; therefore, you should redefine any symbols or process logical names used in your command procedure after each SET RESTART_VALUE command.

> If a command procedure has SET RESTART_VALUE commands in it, but you want the job to restart at the beginning, enter the SET ENTRY/NOCHECKPOINT command to delete the global symbol BATCH$RESTART.

### Example

    $ IF $RESTART THEN GOTO 'BATCH$RESTART'
       .
       .
       .
    $ FIRSTPART:
    $ SET RESTART_VALUE = FIRSTPART
    $ RUN PART1
       .
       .
       .
    $ SECONDPART:
    $ SET RESTART_VALUE = SECONDPART
    $ RUN PART2
       .
       .
       .

> In this example, the first command states that, if $RESTART is true, the procedure is to jump to the value contained in BATCH$RESTART. ($RESTART is true only if the job has been executed before, that is, the job is being rerun after a crash or after having been requeued.)

> The first SET RESTART_VALUE command assigns the label FIRSTPART to be equal to the symbol BATCH$RESTART. The next line contains the command to run PART1.EXE.

> The second SET RESTART_VALUE command assigns the label SECONDPART to be equal to the symbol BATCH$RESTART. The last line shown contains the command to run PART2.EXE.

> When the job is first submitted using the SUBMIT/RESTART command, the value of $RESTART is FALSE, so the IF expression is ignored. If the job is stopped during the run of PART1.EXE, the value of BATCH$RESTART is FIRSTPART. When the job is restarted, the value of $RESTART is TRUE; therefore, the IF expression is processed and transfers control to the FIRSTPART label in the procedure. PART1.EXE is rerun.

> If the job is stopped during the run of PART2.EXE, the value of BATCH$RESTART is SECONDPART. When the job is restarted, the value of $RESTART is TRUE. In this instance, the IF--GOTO command transfers control to the SECONDPART label in the procedure so that PART2.EXE can be run. PART1.EXE is not rerun.

## SET RIGHTS_LIST

> Allows users to modify the process or system rights list. You must specify either the /DISABLE or the /ENABLE qualifier with the SET RIGHTS_LIST command.

### Format

> SET RIGHTS_LIST id-name[,...]

### Parameter

> #### id-name[,...]

> Specifies identifiers to be added to or removed from the process or system rights list. The id-name parameter is a string of 1 to 31 alphanumeric characters, underscores (_), and dollar signs ($); each name must contain at least one nonnumeric character.

### Description

> The SET RIGHTS_LIST command modifies identifiers in your current process rights list, the rights list of another process on the system, or the system rights list. Use the following guidelines to determine which privileges are required for each case:
> - Adding new identifiers or modifying existing identifiers in your process rights list that do not have the Dynamic attribute requires CMKRNL (change mode to kernel) privilege.
> - Modifying the rights list of other processes on the system requires CMKRNL privilege and either GROUP or WORLD privilege.
> - Modifying the system rights list requires both CMKRNL and SYSNAM (system logical name) privileges.
> - Adding or removing more than ten identifiers using the /ENABLE qualifier or the /DISABLE qualifier in a single command invocation requires CMKRNL privilege. You must specify either the /DISABLE or the /ENABLE qualifier with the SET RIGHTS_LIST command.

> This command can also be used to add attributes to existing identifiers.

### Qualifiers

> #### /ATTRIBUTES=(keyword[,...])

> Specifies attributes to be associated with the identifiers. Attributes may be added to new or existing identifiers. The following are valid keywords:

> DYNAMIC | Allows unprivileged holders of the identifier to remove and to restore the identifier from the process rights list by using the DCL command SET RIGHTS_LIST.
> NOACCESS | Makes any access rights of the identifier null and void. If a user is granted an identifier with the No Access attribute, that identifier has no effect on the user's access rights to objects. This attribute is a modifier for an identifier with the Resource or Subsystem attribute.
> RESOURCE | Allows holders of an identifier to charge disk space to the identifier. Used only for file objects.
> SUBSYSTEM | Allows holders of the identifier to create and maintain protected subsystems by assigning the Subsystem ACE to the application images in the subsystem. Used only for file objects.

> To remove an attribute from the identifier, add a NO prefix to the attribute keyword. For example, to remove the Resource attribute, specifiy /ATTRIBUTE=NORESOURCE.

> The default uses the current processes in the rights database. Use the command SHOW PROCESS/RIGHTS to see the attributes of the current process.

> #### /DISABLE

> Removes the identifiers from the process or system rights list. You cannot use the /DISABLE qualifier with the /ENABLE qualifier. Note that removing more than ten identifiers in a single command invocation requires CMKRNL privilege.

> #### /ENABLE

> Adds the identifiers to the process or system rights list. You cannot use the /ENABLE qualifier with the /DISABLE qualifier. Note that adding more than ten identifiers in a single command invocation requires CMKRNL privilege.

> #### /IDENTIFICATION=pid

> Specifies the process identification (PID) value of the process whose rights list is to be modified. The PID is assigned by the system when the process is created. When you specify a PID, you can omit the leading zeros.

> If you specify the /IDENTIFICATION qualifier, you cannot use the /PROCESS qualifier. By default, if neither the /IDENTIFICATION nor the /PROCESS qualifier is specified, the current process is assumed. You cannot use the /IDENTIFICATION qualifier with the /SYSTEM qualifier.

> #### /PROCESS[=process-name]

> Specifies the name of the process whose rights list is to be modified. The process name can contain from 1 to 15 alphanumeric characters.

> If you specify the /PROCESS qualifier, you cannot use the
> /IDENTIFICATION qualifier. By default, if neither the /PROCESS nor the /IDENTIFICATION qualifier is specified, the current process is assumed.

> You cannot use the /PROCESS qualifier with the /SYSTEM qualifier.

> #### /SYSTEM

> Specifies that the desired operation (addition or removal of an identifier) be performed on the system rights list. You cannot use the /SYSTEM qualifier with the /PROCESS or the /IDENTIFICATION qualifier.

### Examples

#1
    $ SET RIGHTS_LIST/ENABLE/ATTRIBUTES=RESOURCE MARKETING

> The SET RIGHTS_LIST command in this example adds the MARKETING identifier to the process rights list of the current process. Specifying the RESOURCE attribute allows holders of the MARKETING identifier to charge resources to it.

#2
    $ SET RIGHTS_LIST/ENABLE/SYSTEM PHYSICS101
    %SYSTEM-F-NOPRIV, insufficient privilege or object
     protection violation
    $ SET PROCESS/PRIVILEGES=(CMKRNL,SYSNAM)
    $ SET RIGHTS_LIST/ENABLE/SYSTEM PHYSICS101

> The SET RIGHTS_LIST command in this example adds the PHYSICS101 identifier to the system rights list. You must have both the CMKRNL (change mode to kernel) and SYSNAM (system logical name) privileges to modify the system rights list.

## 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, refer to the 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, refer to 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, refer to 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 noticably 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     VCC_DFW    QUERY_LOCK
    Process    0              0               0       System
    System     0              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. Note that the placeholder, VCC_DFW, is currently reserved to Compaq.

#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     VCC_DFW    QUERY_LOCK
    Process    0              0               0       System
    System     0              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. Note that the placeholder, VCC_DFW, is currently reserved to Compaq.

#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     VCC_DFW    QUERY_LOCK
    Process    0              0               0       System
    System     0              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. Note that the placeholder, VCC_DFW, is currently reserved to Compaq.

#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     VCC_DFW    QUERY_LOCK
    Process    0             50               0       System
    System     0              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. Note that the placeholder, VCC_DFW, is currently reserved to Compaq.

#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     VCC_DFW    QUERY_LOCK
    Process    0              0               0       Disabled
    System     0              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). Note that the placeholder, VCC_DFW, is currently reserved to Compaq.

## SET SECURITY

> Modifies the security profile of an object.

### Format

> SET SECURITY object-name

### Parameter

> #### object-name

> Specifies the name of an object, such as a file or device, whose security profile is to be modified. An object is identified by an object name and a class name. The default class name is FILE.

> An object name of the FILE class (explicitly or implicitly specified) can include an asterisk (*) or a percent sign (%) wildcard character, but wildcard characters are not allowed in any class other than FILE. SET SECURITY does not operate on remote files and devices, alias directory entries, or directory names in UIC format (for example, [14,5]).

### Description

> The SET SECURITY command modifies the security profile of an object. Such a profile contains the following elements:
> - An access control list editor (ACL editor)
> - A protection code, which defines access to objects based on the categories of system, owner, group, and world.
> - An owner. The system uses the owner element to interpret the protection code.

> There are three different ways to use the command:

> - You can provide new values explicitly with the qualifiers /ACL, /PROTECTION, and /OWNER. (For extensive ACL work, use /EDIT to invoke the ACL editor.)
> - You can copy from another object's profile with the /LIKE qualifier.
> - If the object is of the FILE class, you can reset its profile to the default setting with the /DEFAULT qualifier.

> To modify a security profile, you need control access to the object. An ACL grants control access explicitly whereas a protection code grants it implicitly to anyone belonging to the owner or system categories. If an object profile is modified while the object is being accessed, the existing access is unaffected.

> Previous | Next | Contents | Index

> | privacy and legal statement |
> 9996PRO_060.HTML