The OpenVMS Frequently Asked Questions (FAQ)

If you are searching for something here, please
consider using the text-format FAQ.

On a workstation, you will want to use the "Customize" menu
of the session manager utility and select "Security". When
the pop-up box appears, you can select the host node, username, and
tranport that will allow you to launch an application that targets the
workstation display.

If this does not provide you with access to the display, You need a
checklist of sorts:

Make sure that you've specified the X-windows "display"
correctly on the remote host. For a DECnet transport, the specification
uses two colons, while the TCP/IP transport typically uses one. The X
Windows server and the X Windows screen follow the host specification,
delimited by a period. For example:

If you have verified the command is correct and things are still
not working, ensure the Security settings on the OpenVMS host side will
allow the incoming connection: Pull down the "Options" menu
in the Session Manager, and select "Security...". If you do
not find your host and username and transport listed among the
authorized users, you will need to add an entry.

There are various transports available, including LOCAL, DECNET,
LAT, and TCPIP. You must Select the transport appropriate to the
incoming connection.

If the transport is "DECnet", do NOT add the
double colon (::) to the node name.

If the transport is "TCPIP", "Username"
must be an asterisk (*). Why? Because unlike DECnet, the
TCP/IP protocol does not provide the remote username information in the
incoming connection.

If the connection is "TCPIP", it is best to use a full
domain name (e.g. Node.Subd.Domain). However, you may have to use the
IP address itself, if your host does not have a way to resolve the
address via DNS. If you have the luxury of fixed addresses (eg: you are
not using DHCP), then it can be helpful to add two entries for
each TCP/IP host, one that specifies the host name and one that
specifies the host address.

There are various TCP/IP packages for OpenVMS, and you must use
syntax appropriate to the transport installed.

If a TCP/IP connection is still not working, ensure that the
transport you want has been activated for use with DECwindows. See
Section 11.14 for details of configuring TCP/IP as a transport.

There is a log file created in SYS$MANAGER: which can tell you
which transports are loaded, and also tell you what connect attempts
were rejected, including showing what the presented credentials were.
This file is SYS$MANAGER:DECW$SERVER_0_ERROR.LOG, although the 0 could
be another number if you have multiple servers on the workstation. I
have found this file to be very useful for tracking down what needs to
be put in the Session Manager Security entries.

Note that LAT is typically used only for the VXT series X Windows
terminals, but it can also be used from OpenVMS to OpenVMS systems on
various OpenVMS releases, such as on OpenVMS Alpha V6.1 and later. For
details on configuring the TCP/IP transport, see Section 11.14.

If you are interested in X Windows terminals and have an older
VAXstation system around, please see the EWS package on Freeware V5.0.

If you are working from a DECwindows DECterm terminal emulator, you can
use the AutoPrint feature. Choose the "Printer..." menu item
from the "Options" menu, set the printing destination to the
name of the file you want, and set "Auto Print Mode". You are
now free to continue.

It should be noted that all of the characters and escape sequences are
captured, but if you display the resulting log file on a DECterm, then
you will see exactly what was originally displayed.

You can also use the "Print Screen" screen capture available
in the DECwindows session manager menus, if you simply wish to snapshot
a particular portion of the X Windows display.

If you are using the Freeware
VTstar terminal emulator package, you will find a similar logging
mechanism is available in the menus.

First check to see if there is a graphics device, usually a G* device.
(eg: On a DEC 2000 model 300, use the command SHOW DEVICE GQ) If you do
not find a graphics device:

OpenVMS has failed to find the appropriate IRQ information for an
EISA graphics card (on the DEC 2000 series) such as the HP (Compaq)
QVision, and did not autoconfigure it. Run the correct ECU (for Tru64
UNIX and OpenVMS) and reboot. This is necessary only on EISA-based
systems.

You have an EISA-based system (such as the DEC 2000 model 300) and
do not have a HP (Compaq) QVision video card. This EISA graphics card
should have Compaq printed on it, and identifies itself as a CPQ3011 or
a CPQ3111. If it is not one of these two EISA devices, then OpenVMS
does not support it. (There are no other supported EISA graphics
controllers, and EISA graphics are normally used with DECwindows only
on the DEC 2000 series systems.)

You have a PCI-based system, and do not have a supported graphics
controller---examples of supported controllers include the following:

Radeon 7500

PowerStorm 3D30, PowerStorm 4D20

3DLabs Oxygen VX1

See Section 5.16 for further information on some of these graphics
controllers.

You have booted the system minimally, or have otherwise disabled
the device autoconfiguration process.

If there is a G* graphics device present:

There may have been a severe error in the DECwindows startup. Type
the contents of SYS$MANAGER:DECW$SERVER_0_ERROR.LOG for any information
on errors starting the server.

The system parameter WINDOW_SYSTEM is not set to 1. While this was
a common way for system managers to disable the DECwindows server
startup, it is not particularly reliable as DECwindows can now
"correct" this setting.
If you really do not want an OpenVMS system with workstation
hardware to bootstrap and configure itself as a workstation, add the
following definition to SYLOGICALS.COM:

$ DEFINE/SYSTEM/EXEC DECW$IGNORE_WORKSTATION TRUE

You may not have a valid DECwindows Motif license loaded. To check
for the two most common types of Motif product authorization keys
(PAKs), use the following DCL commands:

$ LICENSE LIST DW-MOTIF/FULL
$ LICENSE LIST NET-APP-SUP*/FULL

and examine the information displayed. Make sure that one of these
licenses is present, valid and active. For information on
registering software license product authorization keys (PAKs) when you
cannot log into the system directly, please see Section 5.6.2.

Check that the DECW$PRIVATE_SERVER_SETUP.COM is correct for the
graphics controller in use. For instance: The following is from the
9FX Vision 330 Owners Guide, EK-V330G-OG pg 2-9. Place the following in
DECW$PRIVATE_SERVER_SETUP.COM, creatibng .COM from .TEMPLATE if
necessary. Locate the DECW$PRIVATE_SERVER_SETUP.COM file in
SYS$SPECIFIC:[SYSMGR] or in SYS$COMMON:[SYSMGR] as appropriate; the
former file is used for this system within a cluster configuration, and
the latter is used for all systems that do not also have a local copy
of this file in SYS$SPECIFIC:[SYSMGR].

To customize various DECwindows Motif characteristics including the
defaults used by the SET DISPLAY command, the DECwindows login screen
background logo used (the default is the DIGITAL, Compaq, or HP logo),
various keymaps (also see Section 11.7.2 and Section 11.7.1), the
FileView defaults, session manager defaults, the DECwindows login
processing, DECwindows log file processing, and various other
DECwindows attributes, see the example file:

$ SYS$MANAGER:DECW$PRIVATE_APPS_SETUP.TEMPLATE

This example template file is typically copied over to the filename
SYS$COMMON:[SYSMGR]DECW$PRIVATE_APPS_SETUP.COM and then modified to
meet site-specific requirements.

Additionally, various X tools such as xsetroot, bitmap and xrdb---some
these can be useful in customizing the appearance of an application or
of the DECwindows Motif display---are provided in the DECW$UTILS: area.

When using DECwindows V1.2-4 and later on OpenVMS Alpha, the default
desktop is the Common Desktop Environment (CDE). You can select your
preferred desktop (CDE or DECwindows Motif) when logging in, or you can
change the default to the DECwindows Motif desktop using the DCL symbol
decw$start_new_desktop in the DECwindows private application setup
command procedure. See SYS$MANAGER:DECW$PRIVATE_APPS_SETUP.TEMPLATE for
further details, and how to create DECW$PRIVATE_APPS_SETUP.COM.

Note that with DECwindows CDE, the root window is no longer visible by
default. The root window is hidden behind the
"backdrop" window of the current CDE workspace. To make the
root window visible, use the CDE style manager selection "backdrop
none", and use information such as that in the OpenVMS FAQ to set
the root window.

To add a new backdrop to the DECwindows CDE environment, the backdrop
must first be in or be converted into X11 pixmap format. (This
conversion is often possible using tools such as xv.)
Then (if necessary) create the default backdrop directory
SYS$COMMON:[CDE$DEFAULTS.USER.BACKDROPS]. Place the X11 pixmap file
containing the desired image into the backdrops directory, ensure that
it has a filename extension of .PM. (The xv default filename extension
for the X11 pixmap file is .XPM, while CDE expects only to see files
with .PM.) Now invoke the CDE style manager and select a new backdrop.
You will find your image will be placed at the end of the list of
backdrops available.

If you require a message be included on the initial display---where the
start session display and the logo appears---you can use either of the
following approaches:

The simplest approach requires OpenVMS V7.3-2 or later, and the
corresponding DECwindows V1.3-1 kit or later. You will want to create a
file named SYS$COMMON:[SYSMGR]DECW$GREET.TXT, and this will be
displayed in a popup---with an OK button---when the login box is
displayed. This is intended specifically for applications requiring
such a display.

The second approach involves copying the file XRESOURCES.DAT from

SYS$SYSDEVICE:[VMS$COMMON.CDE$DEFAULTS.SYSTEM.CONFIG.C]

into the directory

SYS$SYSDEVICE:[VMS$COMMON.CDE$DEFAULTS.USER.CONFIG.C]

and editing the copy. Specifically, look for the following:

Dtlogin*greeting.labelString:

The line is normally commented out, and by default contains the
string:

Welcome to %localhost%

You can change this text to something akin to the following:

Dtlogin*greeting.labelString: Welcome to Heck \n\
This is a Trusted System owned by the Rulers of the planet Zark\n\
\n\
We Come In Peace\n\
\n
If you want Privacy, you've come to the wrong place\n\
\n

The lines of text will be centered for you. In most DECwindows
versions, you will be able to onbtain only about eight (8) lines of
text. Changes have been implemented in DECwindows V1.3 and later that
permit up to about twenty-five (25) lines of text.

The login logo is stored as an XPM bitmap image in the text file
SYS$SYSROOT:[SYSCOMMON.CDE$DEFAULTS.SYSTEM.APPCONFIG.ICONS.C]DECDTLOGO.P
M,
and it can be changed. Copy the file to
SYS$SYSROOT:[SYSCOMMON.CDE$DEFAULTS.USER.APPCONFIG.ICONS.C]DECDTLOGO.PM,
as DECwindows upgrades can replace the system version of this file.

On DECwindows V1.3-1 and later (and possibly on V1.3), both DECwindows
CDE and DECwindows Motif displays use this logo file. On older
releases, only the DECwindows CDE displays used this logo file, while
the logo used for the Motif login display was hard-coded into the
package and the only available override is the DECW$LOGINLOGO command
procedure mechanism within the customized, site-specific
DECW$PRIVATE_APPS_SETUP.COM file.

Look at the contents of the DECDTLOGO.PM file and at other *.XPM files
and tools for additional details.

Various keymaps can be implemented on OpenVMS and other X Windows
systems, allowing the implementation of a Dvorak-style or other
alternate keymappings. For details, see the available X Windows
documentation (this is the documentation associated with X Windows
itself, and not the product documentation for the OpenVMS operating
system nor for the DECwindows X Windows implementation) and see the
DECwindows *.DECW$KEYMAP (text-format) files found in the DECwindows
DECW$KEYMAP: directory.

This behaviour involves the Motif virtual key bindings. When a Motif
application starts, it looks at the vendor string returned in the
display connection information and attempts to match the string to a
table of virtual bindings.

You can override the default bindings in your decw$xdefaults.dat file.
Here is the entry you would make to get the default VMS bindings.

Yes, XtAppAddInput() does work on OpenVMS. The MIT definition of the X
Windows call XtAppAddInput() includes platform-specific arguments.

On platforms where C is the typically the primary programming language
for the platform, the file descriptor mask is one of the arguments to
the XtAppAddInput() call.

On OpenVMS, the platform-specific arguments to this call include an
event flag and an IOSB, as these are the traditional OpenVMS constructs
used to synchronize the completion of asynchronous operations. While it
would be easier to port non-OpenVMS C code that calls XtAppAddInput()
over to OpenVMS if the arguments included the C file descriptor, this
would make the call unusable from other OpenVMS languages, and would
make it extremely difficult to use OpenVMS features such as ASTs and
sys$qio calls.

One restriction on the event flag: the event flag chosen must be from
event flag cluster zero. When using the traditional lib$get_ef and
lib$free_ef
calls to allocate and deallocate event flags, you must first explicitly
call lib$free_ef to free up some event flags in event flag cluster
zero. Please see the event flag documentation for specific details on
these calls and for specific event flags that can be freed in event
flag cluster zero.

Here is some example code that covers calling this routine on OpenVMS:

Congratulations, you have just stumbled into "dead rodent"
mode. This DECwindows environment---where the keyboard arrow keys move
the mouse cursor and where the [SELECT], [PREV], and [NEXT] keys
emulate the three mouse buttons---allows rudimentary system operations
when the mouse is among the casualties.

Also see the console message window application available with recent
DECwindows versions---DECwindows versions V1.2-3 and later will enable
this window by default. For details on this console message window, see
the DECW$CONSOLE_SELECTION option in
SYS$STARTUP:DECW$PRIVATE_APPS_SETUP.TEMPLATE.