LOCK V1.0 Technical Release Notes All information necessary to use LOCK is available in the help text. This file describes aspects of the implementation. LOCK is installed using the VMSINSTAL procedure. Treat it in a manner similar to Digital layered products you install using VMSINSTAL. However, since LOCK is not a Digital product, it does not automatically get put in the same places as Digital installations. During the installation, you will be asked whether or not you wish to install LOCK as though it came from Digital. If you answer in the affirmative, LOCK will be added to the default command tables, help library, and SYS$SYSTEM. If you answer 'N' to the question, you will be asked for each storage area as the installation procedure comes to it. The defaults will be the Digital areas (i.e., SYS$SYSTEM, SYS$HELP:HELPLIB.HLB, and SYS$SHARE:DCLTABLES.EXE), but you may override them and supply your site-specific locations. Note that the command table and help library must already exist - the installation will NOT create them if they aren't already there. The IVP should output a series of messages. The header text of these messages should look like this: %LOCK-S-OBTAINED %F-LOCKED %I-LOCKED 1 %S-OBTAINED 1 %LOCK-S-CONVERTED 2 %LOCK-S-RELEASED 2 %S-RELEASED Those messages marked '1' above may come out in the opposite order, as may those marked with a '2.' This is normal, and not cause for concern. It stems from a race condition between the master and slave processes trying to write their respective messages to the output stream. In order to work properly, LOCK must either be installed with CMKRNL privilege or all processes which will be using it must possess that privilege. In addition, the same holds true for the SYSLCK privilege if system-wide locks are to be used. Appropriate changes may need to be made to your site-specific startup procedure(s). Page 2 LOCK works by taking out locks at supervisor mode. Continuity is maintained by storing the contents of the lock status block in a protected logical name. LOCK must be installed with the CMKRNL privilege both because of the manner in which it protects this logical name (process table, kernel mode, NO_ALIAS and CONFINE attributes - means that only a program in kernel mode can change or delete it) and because it changes to kernel mode to access resources with supervisor-mode locks.