HP OpenVMS Systemsask the wizard |
The Question is: I would like to use "Set Command" to make a .CLD file a global command for all users. The only way I have been able to get it to work is by inserting it in the login.com for each user. How do I make it global? The Answer is :
The method to do this is quite simple, and, most of the time it is
perfectly safe. However, you need to use some caution as mistakes can
cause fairly severe trouble either immediately or in the future. Please
read and understand the warnings and notes before attempting to update
DCLTABLES.
These commands will update the system wide DCLTABLES:
$ SET COMMAND /TABLE=SYS$COMMON:[SYSLIB]DCLTABLES -
/OUTPUT=SYS$COMMON:[SYSLIB]DCLTABLES yourcld.CLD
$ INSTALL REPLACE SYS$SHARE:DCLTABLES
WARNING 1: Before attempting the above commands (on OpenVMS versions
prior to V6.2), execute the following commands:
$ DIR/SIZE=ALL SYS$SHARE:DCLTABLES.EXE
Ensure that DCLTABLES is in SYS$COMMON:[SYSLIB]. If there is
a copy in SYS$SYSROOT:[SYSLIB], please contact your local
customer support centre for assistance.
$ WRITE SYS$OUTPUT F$GETSYI("CONTIG_GBLPAGES")
Ensure the figure is larger than the size of DCLTABLES.EXE
$ WRITE SYS$OUTPUT F$GETSYI("FREE_GBLSECTS")
Ensure there are sufficient global sections free. DCLTABLES will
use 1.
Failure to ensure adequate resources prior to the INSTALL command
will result in blocking all logins to the system and will require
a reboot to fix.
On OpenVMS V6.2 and later, the INSTALL utility verifies
sufficient room for the new DCLTABLES before removing the
old DCLTABLES image.
WARNING 2: Please make sure you enter the file name in the SET COMMAND
command as SYS$COMMON:[SYSLIB]DCLTABLES (*precisely* as
shown above). Failure to do so WILL cause problems with future
installations and upgrades.
Note 1: Only new processes will see the new commands automatically
Note 2: Existing processes can use the command:
$ SET COMMAND/TABLE=SYS$SHARE:DCLTABLES
to make the new commands available without logging out and in again
Note 3: Each time this procedure is executed, a delete pending global
section will be created. They will remain until all processes using
that copy of DCLTABLES are terminated. GBLPAGES and GBLSECTIONS will
not be freed until the global sections complete deletion.
Note 4: Do NOT purge DCLTABLES.EXE from SYS$SHARE until you KNOW that all
processes using that copy of DCLTABLES have terminated. Since
there is not simple way of determining this, the best approach is
to wait until after the next system reboot.
Deleting DCLTABLES while still in use will result in a "lost"
file remaining on the disk, as the file will be retained in a
"marked for delete" status. To recover from this (wasteful but
otherwise harmless) condition, use the ANALYZE/DISK/REPAIR
utility.
|