Processes that access shared resources can coordinate
access using the services of the lock manager. These services allow
processes to associate a name with a resource, such as a file or a
data structure, to arbitrate access to that resource, and to exchange
limited information through a lock value block. The namespaces that
catalog resources on which locks can be taken are called resource domains.
A process must become a member of a resource domain
to take and release locks and to read and write value blocks associated
with resources in that resource domain. A process implicitly joins
the system and group domains, but it explicitly joins other domains
through a call to the $SET_RESOURCE_DOMAIN system service. Access
to all locks and value blocks within a domain is controlled by access
to the domain itself.
Naming Rules |
 |
A resource domain is identified to $SET_RESOURCE_DOMAIN
by a longword binary value. However, the name of the resource domain
object is a string containing the resource number interpreted in octal
surrounded by brackets [] or angle brackets <>. Alternatively,
the name of the resource domain object can be expressed as an identifier
enclosed in brackets or angle brackets. The identifier must translate
to a UIC value; the group field of the UIC is used as the resource
domain number.
Types of Access |
 |
The resource domain class supports the following
types of access:
Read | Gives you
the right to read lock value blocks in the domain, including the right
to use the $GETLKI system service to retrieve it |
Write | Gives you
the right to write to lock value blocks in the domain |
Lock | Gives you
the right to take locks using $ENQ, release locks using $DEQ, and
obtain information about the lock database using $GETLKI |
Control | Gives you
the right to modify the protection elements of a resource domain |
Template Profile |
 |
The resource domain class provides the following
template profile. The template assigns an owner UIC of [n,*] where n is the resource domain's
number.
Template Name | Owner UIC | Protection Code |
---|
DEFAULT | [n,*] | S:RWL,O:RWL,G:RWL,W |
Privilege Requirements |
 |
The SYSLCK privilege allows lock access to the
system resource domain (Domain 0).
Kinds of Auditing Performed |
 |
The following events can be audited, provided
the security administrator enables auditing for the event class:
Event Audited | When Audit Occurs |
---|
Access | When a process calls $SET_RESOURCE_DOMAIN or $ENQ to join a
domain |
Creation | The first time a process joins the resource domain |
Deaccess | When a
process called $SET_RESOURCE_DOMAIN or at image or process rundown |
Permanence of the Object |
 |
Both the resource domain and its security elements
are saved in SYS$SYSTEM:VMS$OBJECTS.DAT.