SLAC ESD Software Engineering Group
Stanford Linear Accelerator Center

Aida System Management Guide

SLAC Detailed
SLAC Computing
Software Home
Software Detailed

This page describes system management of AIDA. Since AIDA is a distributed system, operating on Unix and VMS servers, and accessible from Windows, Unix and VMS clients, each property is descibed for each OS. All AIDA Data Providers presently running on "Unix" are in fact running on Solaris machines (mostly mccas0), which is on the DMZ network, so where you see "unix", read Solaris/DMZ.This doc covers the overall system architecture, configuration of AIDA, how to check the status of a server, and how to restart it if necessary.

How Aida Works

AIDA is a system of distributed servers, running on Solaris and VMS hosts. They interoperate via CORBA IIOP (using the Orbacus imlementation). The client interface is implemented in Java, adn communicates with the servers over CORBA.

There are two primary servers in the AIDA system, they supply the AIDA infrastructure; these are the DaServer, which coordinates and delegates data requests, and the DaNameServer, which as the name suggests, finds the Data Provider responsible for a given named item, and returns the CORBA "interoperable object reference" (IOR), basically the IIOP address, of the Data Provider server which is responsible for the named item. All of the other servers are Data Providers. The DaNameServer persists all of its data to the SLACPROD Oracle database instance.

Server locations

Aida servers are located on a number of hosts on the various networks of the SLAC control system, both Unix and VMS. The Unix servers run on Solaris hosts on the DMZ or CA networks; the VMS servers run on MCC and MCCDEV.

Every Aida server has at least 1 Production instance (sometimes more than one) and a Development instance. At the time of writing, mostly, mccas0 serves as the Production host for unix servers, and MCC serves as production for VMS servers. slcs2 serves as the Development host for unix servers, and MCCDEV serves as the development host for VMS servers.Eg

Server O/S Production Development
DaNameServer Unix mccas0 slcs2

Unix AIDA Servers

There are presently 2 production AIDA System servers (DaNameServer and DaServer), and 6 AIDA Data Provider servers running on Unix hosts. One of the Data Providers has 3 instances, serving 3 different realms (Pepii, nlcdev, and pack). This gives 10 running servers on Unix in all (See in Appendix A. Due to Aida's origins, the mature system management tools are on Solaris, and the setup files are on AFS, so all of these servers are "AFS" Solaris.

Server Env. Abbrev. Production* Development
DaNameServer NAME mccas0 slcs2
DaServer DA mccas0 slcs2
DpTestServer TST mccas0 slcs2
DpTestHistServer TSTH mccas0 slcs2
DpCaServer CA PEPII=mccas0 slcs2
DpChadsServer HST PEPII=mccas0, NLCDEV=opi00gtw04, PACK=nlcdev-opi03 slcs2
DpChadsLclsServer LHST mccas0 slcs2
DpCaLclsServer LCA mccas0 slcs2
DpRdbServer RDB mccas0 slcs2
DpModelServer MODEL mccas0 slcs2

NOTEThis list may easily become out of date. See Appendix below for how to see a formal list of Aida Unix servers.

Unix Server Hot Restart

Log into an "AFS" Solaris node, such as Tersk, and use aidamanager. You'll need the Solaris AFS environment to get aidamanager.

tersk07]:u/cd/greg> source /afs/slac/g/cd/soft/dev/script/ENVS.csh

To get syntax of aidamanager, just type adiamanager:

[tersk07]:u/cd/greg> aidamanager
Usage: procmanager {} {show,start,restart,kill} [{dev,prod,nlcdev,pepii,pack}]

To see the present status of an aida server, use "show": Eg:

[tersk07]:u/cd/greg> aidamanager DaNameServer show prod

To restart an aida server, use "restart". Eg: This would restart the AIDA name server:

[tersk07]:u/cd/greg> aidamanager DaNameServer restart prod

*Some servers have more than one Production host. That is, they have more than one production realm. In those cases the realm names are given (eg PEPII, NLCDEV). If the server exists in only 1 realm, it is refered to ony as "PROD". So, for instance, when restarting DaServer, since it only has one production host, you would say "aidamanager DaServer prod restart", but to restart all 3 of the "DpChadsServer" server instances, you would issue 3 calls to aidamanager:

aidamanager DpChadsServer restart pepii
aidamanager DpChadsServer restart nlcdev
aidamanager DpChadsServer restart pack

VMS AIDA Servers

There are presently 8 production AIDA Data Provider servers on the MCC Alpha (VMS),and the same 8 running as development on MCCDEV.

Server Production Development

VMS Server Hot Restart

Log into SLCSHR on MCC (or MCCDEV), and use warmslcx.

warmslcx aida_dpslcbpm /restart

Due to persistency in the SLC Message Service initialization, some VMS servers may have to be restarted twice!. The best way to establish whether this is necessary is simply to test a data acquistion from the server, and if it fails, issue the warmslcx again!!

Testing VMS Servers

Most of the Aida system management tools are exclusively on AFS and are tested on Solaris, so the easiest testing method is to log on to say tersk, do the Aida environment setup, and make tests from there. This is the only easy way to test both Prod and Dev servers.

[add info on aidatest and the aida test suite]


[Add info on Matlab clients, Java client interface, command line tools aidaget, aidaput, aidalist, aidaweb]


[add info on Err, Err configuration and hosts, Orbacus config, Orbacus service contract, Oracle SLACPROD, SLACDEV]

Name Server Maintenance

[Add info on scripts that auto-update Aida Names DB]

Aida System Configuration

This section describes the configuration data Data Providers themselves require. It also describes the definition of where each Data Provider is run, and which ports it uses. The configuration system is different on Unix to VMS. So far, only the Unix system is described.

Unix Data Provider Configuration files

The configuration of individual Aida servers can be through two kinds of files:

  1. The st.* file of the server, from $CD_SOFT/ref/sun4-solaris2/sys/. Eg st.DaNameServer. These contain the functional initialization, such as the EPICS Channel Access Address list for the DpCaServer.
  2. The config file of the server, $CD_SOFT/ref/confsys/. Eg DaNameServer.conf. These contain the CORBA configuration, such as the listen port and timeout.

These files are in the cdsoft development system. The installation directory is given above, but the source for both is $CD_SOFT/ref/package/aida/common/script.

Unix Global Configuration

The aidaSetEnv.csh file sets up all global configuration for Aida processes. Each server sources this file, using either "prod" or "dev" argument, as part of its environment setup.

aidaSetEnv.csh defines some aliases which are used to start each server in a consistent way. Most servers are started by the "aidarun" alias, which is defined as:

alias aidarun 'java -server ${AIDABCSTRING} -Dooc.config=${CD_CONFSYS}/\!:1.conf 
edu.stanford.slac.aida.\!:2* '

Therefore, the most important lines in each st. file, are these two, which togther set up the environment, and execute the server:

source ${CD_SCRIPT}/aidaSetEnv.csh $aidamode
aidarun $AIDA_NAME_NAME sys.daNameServer.NameServer

Unix Data Provider Location Environment Definition

The setEnv.csh file on AFS defines the formal name, and which host and port all the Unix AIDA data provers run on. It does this by defining environment variables with a very formal syntax, which is then understood by the procmanager deamon management scripts (eg aidamanager).

Extract of $CD_SOFT/dev/script/setEnv.csh

setenv AIDA_NAME_NAME        DaNameServer
setenv AIDA_NAME_HOST_DEV    slcs2
setenv AIDA_NAME_HOST_PROD   mccas0
setenv AIDA_NAME_DBGADDR        59001
setenv AIDA_DA_NAME          DaServer
setenv AIDA_DA_HOST_DEV      slcs2
setenv AIDA_DA_HOST_PROD     mccas0
setenv AIDA_DA_DBGADDR          59002

Appendix A: Formal List of Aida Servers


The following assumes you have set up the Solaris production environment.

tersk07]:u/cd/greg> source /afs/slac/g/cd/soft/dev/script/ENVS.csh

To get a reliable list of the Aida servers on Unix that should be running, use the following command on tersk, to see Aida Unix server names.

[tersk07]:u/cd/greg> printenv | awk '/AIDA_.+NAME/'

To see if All unix Aida server ARE running, use aidamanager, giving the explicit realm name.

aidamanager DaNameServer show prod
aidamanager DaServer show prod
aidamanager DpTestServer show prod
aidamanager DaTestHistServer show prod
aidamanager DpCaServer show pepii
aidamanager DaCaLclsServer show prod
aidamanager DpChadsServer show pepii
aidamanager DpChadsServer show pack
aidamanager DpChadsServer show nlcdev
aidamanager DaChadsLclsServer show prod

Use the following command on tersk, to see the formal list of Aida Unix server hosts:

[tersk07]:u/cd/greg> printenv | awk '/AIDA.*HOST/'


To get a reliable list of the Aida servers on VMS that should be running, list all the AIDA submit files:

 MCCDEV> DIR/SIZE/WIDTH=(FILENAME=32)/DATE=MOD slccom:aida*.submit


AIDA_DPSLC.SUBMIT;5                     3   6-DEC-2006 10:46:23.72
AIDA_DPSLCBPM.SUBMIT;1                  3  25-AUG-2006 18:56:30.24
AIDA_DPSLCHIST.SUBMIT;4                 3   6-DEC-2006 10:47:02.26
AIDA_DPSLCKLYS.SUBMIT;1                 3  18-MAY-2007 16:02:58.32
AIDA_DPSLCMGNT.SUBMIT;2                 3   6-DEC-2006 10:47:22.82
AIDA_DPSLCMODEL.SUBMIT;2                3  14-FEB-2005 10:28:26.75
AIDA_DPSLCMOSC.SUBMIT;1                 3  13-FEB-2007 14:53:52.35
AIDA_DPSLCUTIL.SUBMIT;1                 3   6-DEC-2006 10:48:33.30

To See which are running

MCC> sho sys/proc=aida*
OpenVMS V8.3  on node MCC  21-MAR-2008 15:17:08.65  Uptime  63 23:42:40
  Pid    Process Name    State  Pri      I/O       CPU       Page flts  Pages
21A0509C AIDA_DPSLC      HIB      6201895191   1 11:39:21.19     15906  11236 M 
21A010A4 AIDA_DPSLCHIST  HIB      6  1026067   0 02:51:03.06     15321  10970 M 
21A024A9 AIDA_DPSLCMGNT  HIB      6  1373094   0 00:39:30.87     23255  18206 M 
21A03CAB AIDA_DPSLCUTIL  HIB      6    87597   0 00:06:17.73     14537  10488 M 
21A058B4 AIDA_DPSLCMOSC  HIB      6   126090   0 00:06:37.08     14537  10142 M 
21A124DB AIDA_DPSLCMODEL HIB      6   877174   0 00:26:45.76     14883  10420 M 
21A19900 AIDA_DPSLCKLYS  COM      4 23494837   0 04:53:04.02     15324  10740 M 
21A15DEB AIDA_DPSLCBPM   HIB      1    21521   0 00:00:40.37     10588   6987 M