The CDMS DAQ software has several components to aid in managing errors
generated in the software and hardware.
When an error is generated in a server, it is sent directly to an Error
Manager. The Error Manager provides a
central location to process and log errors, after which the error is then
broadcast to all other servers which may need to respond. To simplify software writing, an Error
Bridge, a module that implements the network access to both the Error Manager
and the broadcast channel, is provided and can be inserted into other servers
to provide this functionality. Each
error is packaged in a structure
containing information relevant for a full description.
The Error Manager is the central server for handling errors. All other servers submit errors directly to
this manager, by use of a hosted CORBA object, which can then process the
errors and send them to be logged. The
Error Manager also creates a CORBA event channel (the “error channel”) to
broadcast the errors to all the servers so that the other servers may respond
to the error as necessary.
The Error Manager will also maintain constant contact with the essential
servers to determine what may be missing.
If the Error Manager loses contact with a server, it will notify Run
Control and, depending on the necessity of the server, may cause the data run
Bridge is a module (java class) that may be inserted into any java
server. The Error Bridge contains all
the necessary CORBA code to access the Error Manager and error channel. It filters incoming errors to find those
that apply to the specific implementing server as well as maintains constant
contact with the Error Manager to indicate that the particular server is
operating. This frees other programmers
from having to write their own network software into each server.
All errors generated must be stored in some type of repository. Initially, errors will be saved to text
files that are created by date, time, and eventually by a run “identifier” (a
file descriptor that will match to the data files). Eventually, errors will be logged to an SQL database, which will
allow for more efficient searching. The
database will also be accessible through the web, with the current plan using
servlets to generate dynamic HTML.
Additional documentation is available on:
Questions or comments should be sent to firstname.lastname@example.org