HP OpenVMS Systems

ask the wizard
Content starts here

DECwindows and Captive sessions?

» close window

The Question is:

We are upgrading a VAX 3000 to Alpha 433au, VAX VMS 5.4-2 to OpenVMS 7.1.
The existing applications were run from VT terminals, programmed in FORTRAN
using SMG extensively.
A captive account was set up for a group of users that ran a single
application. Exiting the
application logged out the user.
What is the best way to re-create this captive environment on the
workstation?  Can this be done
in the CDE environment?  We do not want to train this group of users on the
new desktop, nor give them
any ability to execute any functions other than the single application
program - on a DECterm I

The Answer is :

  You can continue to use the existing DCL terminals via LAT terminal
  services, local serial-line controller, or similar.  This will
  provide you with an approach most similar to the existing OpenVMS
  VAX environment.
  If you choose to modify DECwindows (specifically DECwindows CDE) to
  provide for a relatively captive environment, read on...
  Make a private copy of xsession.com (which is analogous to the DECwindows
  Motif decw$startsm.com procedure) and point to it by changing the contents
  of xconfig.dat to run your copy instead.  Look at the file:
  for a template of what to put in the file.   This template shows how to
  start the mwm window manager and restart the login box when you are done.
  There are also several choices of session types with CDE.  You might want
  to make the FailSafe session also point to the command file you end up
  with.  (This is another resource in xconfig.dat.)
  There are other options: there is a DCL symbol called cde$sessionmain,
  (which works the same as decw$sessionmain) that allows you to point to
  something other than dtsession.  This symbol should contain a valid DCL
  command.  Add it to your decw$private_apps_setup.com file.
  Last, you could put a command file in the directory:
  Anything in this directory will be executed before the session manager
  is started.  The procedures are run in alphabetical order.  If you
  placed your procedure in this directory, it would execute your application
  and restart the login box -- before dtsession ever gets started.
  An example of one approach:
  1) Create a file called CDE$PRIVATE_SESSIONCOM.COM in
     CDE$USER_COMMON:[BIN].  It must have (W:RE) privileges.
     NOTE: If the directory CDE$USER_COMMON:[BIN] does
           not exist, you will need to create it.
$! cde$private_sessioncom.com
$ username = F$USER() ! Get the username
$ if f$locate("BOOKREAD", username) .NE. F$LENGTH(username) then GOTO dedicated
$!************ If not user BOOKREAD CALL THE SYSTEM XSESSION.COM FILE *****
$ @cde$system_common:[bin]xsession.com
$ exit
$ run sys$system:decw$wsinit
$ display = F$TRNLNM("DECW$DISPLAY")
$ endsession := $decw$endsession.exe
$ endsession -noprompt
$ stop/id=0
  In the command procedure, you must run the DECW$MWM.EXE window manager
  as DTWM wants to bring up the New Desktop Front Panel.  You probably
  do not want this.
  If you do wish to maintain the front panel, consider something akin
  to editing the various resources in the dtwm applications default
  file, in order to "grey out" the various pushbuttons:
    *FPPopup.App_Subpanel.sensitive: False
    *FPPopup.Delete_Control.sensitive: False
    *FPPopup.Help.sensitive: False
  (The savvy user might be able to override these settings, and set
  .sensitive to true in order to access these pushbuttons.)
  You could also use something such as the following to activate this
  without the front panel:
    $ application := cde$system_common:[bin]dtwm.exe -
        -xrm "*useFrontPanel: False"
    $ RUN/DETACHED/OUTPUT='display' 'application'
  If the User account with the username you have specified in your
  command procedure does not exist, you will need to create it.
     If the subdirectory [CONFIG] does not exist under CDE$USER_COMMON,
     you must create it.
  3) Edit the CDE$USER_COMMON:[CONFIG]XCONFIG.DAT file and change the
     resource Dtlogin*session to point to the file:
        # = comment out the line
     #Dtlogin*session:        cde$system_defaults:[bin]Xsession.com
     Dtlogin*session:          cde$user_common:[bin]cde$private_sessioncom.com
  4) Save the file, recheck your file protections and restart Decwindows
     with the following command:
       @sys$startup:decw$startup restart
  5) Log in and test the environment.

answer written or last revised on ( 17-JAN-2000 )

» close window