EPICURE Design Note No. 90.4
Epicure System-Level Environment
D.S. Baddorf, F.J. Nagy
The Epicure System-level Environment basically consists of:
Currently, we have a real mess with different procedures, accounts and directory structures used on WARNER, DISNEY, the CAMAC Front Ends, the Cryo Workstations and the test stands.
The overall structure will be to use EPICUREMGR and EOPERATOR accounts everywhere. EPICUREMGR owns the files, and does the initial startup at boot time. EOPERATOR can stop, start, restart, or check (is it running?) any product. The WARNER cluster will have accounts EPICUREMGR and EOPERATOR added to it. Software will be moved into these accounts (out of the WORK areas) when it is declared ``operational''. There will eventually be a distributor account on WARNER whereby systems programmers can distribute new versions of code to the EPICUREMGR area on WARNER and then on to the other nodes, but currently this is arranged through Deb.
This means the EPICURETEST accounts are to be changed on DISNEY, the CAMAC Front Ends and the test stands once the new system is in place. The EPICURETEST accounts will remain, for the diagnostics and trouble-shooting which cannot be done on the test stands, and individuals' setups and symbol definitions can remain there. On the test stands, the DAEWORK directory remains, to hold test versions of code.
The EPICUREMGR account will be similar to the EPICURE_MGR accounts on the Cryo Workstations. However, we will redo the underlying directory structure. The Epicure H-kit distribution will NOT be used to maintain our software on systems under our direct control.
The current directory structure of the EPICURE_MGR accounts is to be scrapped and one adopted that is more like the structure used by the EPICURETEST accounts. That is the following subdirectories are introduced, with the obvious contents:
The master startup procedure will define logical names for all of these areas: RDCS_TOP for the top level, and RDCS_dirname for all the other areas (RDCS_DIAG, RDCS_DAR, ..., RDCS_LOGS, ..., RDCS_VDW). Since we already have logicals beginning with EPICURE_ for our programming environment on WARNER, the logicals for this system environment will begin with RDCS_ (RDC System). This will also allow us to use RDCU_ (RDC User) for the eventual user environment. Rules for our detached processes:
$ node = F$GETSYI("NODENAME") $ run ... /OUTPUT=RDCS_LOGS:filename-'node'.OUTPUT
An EVERYNITE.JOB will clean up the log file areas and the various subdirectories:
EVERYNITE should monitor remaining disk quota and if necessary, lower the time limits and purge/delete files early, in order to free disk space used by EPICUREMGR. System, dump, output and error files will never be allowed to occupy greater than 100 MB of disk space. The remaining disk storage is considered dedicated to possible front end applications such as datalogging.
In order to get EPICURE going as soon as possible during a boot, the EPICURE startup job will be given special handling in our startup files. It will be moved to end of the COMMON_SYSTARTUP file, in parallel with the BOOTJOB task, and handled separately from the regular EVERYBOOT.JOB files. This will put the EPICURE startup in parallel with the completion of the SYSTARTUP, where VWS or DECWINDOWS is being started up, and will also overlap other BOOTJOB startups (which includes some logicals not needed by EPICURE, Decserver configuration restoration, DQS, RBMS, and Centurion startups, and other users' EVERYBOOT jobs).
In the EPICURE_SYSSTARTUP.COM file (running in the `node'_SYSTEM queue) will be the EPICURE startup:
$ getuai := $RDCS$EXE:GETUAI $ getuai/exists=DO_EPICURE/default=WHERE EPICUREMGR
Do a one time grant of rights identifier USE_SYS_QUEUE to all EPICUREMGR accounts.$ SET ACL/OBJECT_TYPE=QUEUE - /ACL=(IDENTIFIER=USE_SYS_QUEUE,ACCESS=READ+WRITE) - `node'_SYSTEM
All of the above results in EPICURE processes being started earlier in the boot cycle. Currently, they wait for BOOTJOB to submit the EVERYBOOT.JOB and then to start the `node'_BATCH queue which runs these types of job. These two things happen quite late in the startup. The above changes will do the EPICURE startup in parallel with other BOOTJOB tasks. and while the STARTUP job is visibly finishing and VWS is starting. No synchronization problems are anticipated or noticed so far.
Keywords: Epicure, program