# Usage

## How it works

RSE server registers a newly connected user with the lock daemon. The registration info contains the Address Space Identifier (which is the ASID of the thread pool server), the Task Control Block (TCB) ID (user specific) and the user ID.

Note that registration is done at connect time only, so all RSE users active before the lock daemon was (re)started will not be registered.

When the lock daemon receives a dataset query, it scans the system's Global Resource Serialization (GRS) queues. If the ASID and TCB match that of a registered user, the user ID is returned as lock owner. Otherwise the jobname/user ID related to the ASID is returned as lock owner.

A console message with the registration info is displayed if the registration fails, so that an operator can issue the D GRS,RES=(*,dataset[(member)]) operator command and manually match the ASID and TCB values with the one reported by the system as lock owner.

Note: Successful registrations are also listed in DD STDOUT of the server if `log_level` is set to `2`. This is useful to do the manual mapping for successful registrations that were removed after a restart of the lock daemon.

## Operator commands

    >>─┬─START ─┬──procname──┬───────────────────────────┬────────><
       └─S ─────┘            │        ┌─'usr/lpp/rdz'──┐ │
                             ├─,HOME=─┴─'install_path'─┴─┤
                             │        ┌─'etc/rdz'─────┐  │
                             ├─,CNFG=─┴─'config_path'─┴──┤
                             │       ┌─1─────────┐       │
                             ├─,LOG=─┴─log_level─┴───────┤
                             └─<─────────────────────────┘

procname
  The name of the member in a procedure library that is used to start the server. The default name used during the host configuration is `LOCKD` .
HOME='install_path'
  Path prefix and the mandatory `/usr/lpp/rdz` used to install Developer for System z. The default is `'/usr/lpp/rdz'`. Note that the z/OS UNIX path is case sensitive and that it must be enclosed in single quotes (') to preserve lowercase characters.
CNFG='config_path'
  Absolute location of the configuration files stored in z/OS UNIX. The default is `'/etc/rdz'`. Note that the z/OS UNIX path is case sensitive and that it must be enclosed in single quotes (') to preserve lowercase characters.
LOG=log_level
  The detail level of output in DD STDOUT.

- 0 : Log error messages only.
- 1 : Log error and warning messages (default).
- 2 : Log error, warning and informational messages.

    >>─┬─MODIFY ─┬──procname───────────────────────────────────────>
       └─F ──────┘

    >──,APPL=─┬─QUERY ─┬─┬─dataset─────────┬──────────────────────><
              └─Q ─────┘ └─dataset(member)─┘

procname
  The name of the member in a procedure library that is used to start the server. The default name used during the host configuration is `LOCKD` .
QUERY dataset[(member)]
  Query the lock status of the listed data set or member. The server will reply with one of the following messages:

      BPXM023I (stclock) dataset[(member)] NOT LOCKED
      BPXM023I (stclock) dataset[(member)] LOCKED BY userid

  Notes:
  - The server will also report locks held by other products, like ISPF.
  - Locks held by RSE clients started before the lock daemon will result in the thread pool server address space (`RSEDx`) being reported as lock owner.

    >>─┬─STOP ─┬──procname────────────────────────────────────────><
       └─P ────┘

procname
  The name of the member in a procedure library that is used to start the server. The default name used during the host configuration is `LOCKD`.

Parent topic: RSE Lock daemon