VMS Pseudo Device Logicals

Description

Occasionally when moving an OpenVMS system to an emulated environment there are cases where device names change (typically disk devices).  The "right way" to set up logicals is to define a single logical for a device, especially when dealing with disks, to represents the device name and use it in all other logicals.  This leaves just one logical to change when the device changes.  However, everyone takes short cuts at some point and device names can become embedded in long forgotten command procedures, leaving definitions like so:

 

$ SHOW LOGICAL/FULL SYSTEM_COMMON
   "SYSTEM_COMMON" [exec,no_alias] = "$1$DRA0:[SYSTEM.]" [concealed] (LNM$SYSTEM_TABLE)
$ SHOW LOGICAL/FULL PRODUCT_ROOT
   "PRODUCT_ROOT" [exec,no_alias] = "$1$DRA0:[PRODUCT.]" [concealed] (LNM$SYSTEM_TABLE)

 

In these instances it can often be quicker and simpler to define a logical that represents the old device name.

Step-by-step guide

The following steps describe how to set up the logical.

  1. Firstly, identify the name of the old device.  This will likely come from looking at output from the SHOW LOGICAL command (as in the examples above) or error messages reported by applications.
  2. Then, simply define the logical using the following template:

    $ DEFINE/SYSTEM/EXECUTIVE_MODE ddcu _ddcu: -
    /TRANSLATION_ATTRIBUTES=(CONCEALED,TERMINAL) -
    /NAME_ATTRIBUTES=NO_ALIAS

  3. To make this definition permanent, add it to the beginning of SYS$MANAGER:SYLOGICALS.COM.

 

Caveats

 

Something important to remember is that these are still only logicals. If a logical that refers to this "pseudo device logical" is defined with the TERMINAL attribute, then this solution will not work as this attribute prevents the equivalence string from being translated iteratively. The following example demonstrates this.

$ SHOW LOGICAL/FULL DUA0
"DUA0" [exec,no_alias] = "_DKA0: "[concealed,terminal] (LNM$SYSTEM_TABLE)
$ SHOW LOGICAL/FULL WEB
"WEB" [exec] = "DUA0:[WEB.]" [concealed,terminal] (LNM$SYSTEM_TABLE)
$ DIRECTORY WEB:[000000]
%DIRECT-E-OPENIN, error opening WEB:[000000].;* as input
-RMS-F-DEV, error in device name or inappropriate device type for operation

The definition of WEB would need to should be changed to remove the TERMINAL attribute.



© Stromasys, 1999-2024  - All the information is provided on the best effort basis, and might be changed anytime without notice. Information provided does not mean Stromasys commitment to any features described.