![]() |
![]() HP OpenVMS Systemsask the wizard |
![]() |
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 suppose. Thanks 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: cde$system_defaults:[config]xfailsafe.com 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: cde$user_defaults:[config.xsession_d] 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 $! $!************ IF USERNAME EQS BOOKREAD THEN RUN SPECIFIC APPLICAITON ***** $dedicated: $! $ run sys$system:decw$wsinit $ display = F$TRNLNM("DECW$DISPLAY") $ RUN/DETACHED/OUTPUT='display' SYS$SYSTEM:DECW$MWM.EXE $ RUN SYS$SYSTEM:DECW$BOOKREADER $ endsession := $decw$endsession.exe $ endsession -noprompt $ stop/id=0 NOTE: 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' NOTE: If the User account with the username you have specified in your command procedure does not exist, you will need to create it. 2) Copy the file CDE$SYSTEM_COMMON:[CONFIG]XCONFIG.DAT to: CDE$USER_COMMON:[CONFIG]XCONFIG.DAT 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: CDE$USER_COMMON:[BIN]CDE$PRIVATE_SESSIONCOM.COM # = 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.
|