OpenVMS Undocumented Features
This is the most complete collection of undocumented features we can find for OpenVMS. Some of these have been around since the time when it was called VMS while others are more current and have been added to OpenVMS V8.n. These features:
- Are NOT documented (if they were, they wouldn't belong here)
- Are NOT supported by PARSEC Group or HP
- Are NOT guaranteed to work
- May NOT exist in all versions of OpenVMS; past, present and future
- Are subject to change, removal, enhancement or being documented at the whim of OpenVMS engineering
- May be fun to know the next time you play OpenVMS trivial pursuit
- May help you get your job done easier and faster
- May help you impress your boss with your knowledge of the obscure
DIRECTORY /SUPPRESS
The /SUPPRESS qualifier is added to the DIRECTORY command to suppress the display of Pathworks ACEs. This is the default. If you wish to see those ACEs with DIRECTORY /ACL or DIRECTORY /SECURITY, then you need to add /NOSUPPRESS to the command.
Security Audit Events
The SET AUDIT command allows enabling and disabling specific events for security auditing and security alarms. Some process events are allowed but are not documented. These are:
- CPU_CAPABILITIES
- PRCTERM
- PROCESS_AFFINITY
- PROCESS_CAPABILITIES
- SET_IMPLICIT_AFFINITY
- SIGPRC
An example of enabling one of these is:
$ SET AUDIT /AUDIT /ENABLE=PROCESS=SIGPRC
Another set are those for auditing the use of the persona system services. The keywords accepted for this are:
- ALL
- CREATE
- DELETE
- MODIFY
These may be enabled with the command:
$ SET AUDIT /AUDIT /ENABLE=PERSONA=ALL
Supported TCP/IP Services Interfaces
For some, it may be a mystery knowing what name TCP/IP Services will use for an interface associated with a specific OpenVMS device name. The command TCPIP GENERATE CONTROLLER creates DCL global symbols showing the supported list.
$ tcpip generate controller $ show symbol tcpip$cont_* TCPIP$CONT_ETHERNET == "0 EC:CE XE:DE EF:FE LL:LE ET:NE XQ:QE ER:RE ES:SE EX:XE EZ:ZE EW:WE EO:OE EB:BE EI:IE EG:GE VL:VE" TCPIP$CONT_FDDI == "0 FW:WF FA:AF FC:CF FX:FF FR:RF FQ:QF CL:IF EL:LF" TCPIP$CONT_LOCAL == "0 LO:LO" TCPIP$CONT_PPP == "0 PP:PP" TCPIP$CONT_SERIAL == "0 SL:SL" TCPIP$CONT_TOKEN_RING == "0 IC:CT IR:RT" TCPIP$CONT_WIRELESS == "0 WI:WW"
For example, the TCPIP$CONT_ETHERNET symbol includes the translation EW:WE. This means that the OpenVMS device name EWA0 maps to the TCP/IP interface of WE0. A second device of the same type in OpenVMS would be named EWB0 and be associated with the interface WE1.
SYS$DERLMB System Service
The SYS$DERLMB system service allows a process to declare an error log mailbox. The ERRFMT process will then write errorlog entries to this mailbox as they occur, allowing real-time notification to a process of device errors and related events.
This service accepts a single argument which is the unit number of the mailbox to be sent the messages. When done, the process should call this service a second time with a unit number of 0 to release the use of the mailbox. The calling process must have DIAGNOSE privilege.
WAIT command
The WAIT command is documented as accepting a single parameter of the delta time specifying the amount of time that it should wait. It also accepts two parameters allowing the entry of days and time without the use of quotes. The undocumented feature is that it accepts an absolute time specified as two parameters.
$ wait 0:0:15 ! wait 15 seconds $ wait 1 0:0:0 ! wait 1 day $ show time 16-JAN-2013 08:59:29 $ wait 16-jan-2013 9:0:0 ! wait until 9:00am
Please enjoy these features at your own risk. If you are aware of other features in OpenVMS which are currently undocumented, you may use our inquiry form to inform us. We may then add it to our list.