This document provides a general description of the NLCTA Archiver system.
The NLCTA Archiver system was built under Solaris 9 and runs on the Solaris 10 opi00gtw04 machine. It is the oldest SLAC archiver system in active use and contains NLCTA archiver data as old as 2002. It is based on an older version of the Channel Archiver software than the LCLS, FACET, and Test Facility archiver systems. The NLCTA archiver system is the smallest SLAC archiver system with only one archive engine storing data for currently less than 1,300 PVs. The engine stores data in a NFS area.
The NLCTA archiver system libraries and executables were built using EPICS version 3.14.6. The NLCTA archiver system, like the other SLAC archiver systems, is an EPICS Channel Archiver system and an EPICS extension. The NLCTA archiver sources are under the /afs/slac.stanford.edu/package/epics/R3.14.6/extensions/src/archiver directory.
The NLCTA archive engine process obtains EPICS data and stores it in archive engine directories organized by months. Unlike the other SLAC archiver systems, the engine does not run under the control of a Archive Daemon process. The engine is started by a script and may be stopped by a UNIX "kill" command. The engine provides a web interface that provides information about the engine process.
The NLCTA archive engine process (as well as the index update process described later in this document) is started by the opi00gtw04 "Type 1" startup file /etc/init.d/st.archiver when the opi00gtw04 system is rebooted. To start this engine process manually:
While the NLCTA archive engine process is running a URL is available that provides information about the engine. This information is contained on the main NLCTA archive engine web page: NLCTA Archive Engine Main Web Page. The information displayed includes the date/time the engine was last started, the archive index pathname (specifying the path where the engine is currently storing data and its associated index), the number of channels (PVs) being requested, the number of channels currently connected, and the next time archiver data will be written by the engine.
The NLCTA Archive Engine URL can also be used to obtain information about the connection status of each PV for an engine. For example, to obtain the connections status for all PVs of an archiver group for the NLCTA archive engine do the following from the NLCTA Archive Engine main web page:
The NLCTA archive engine writes its data and current index in a directory that includes the current year and month in its path. For March 2012 this path is:
The directory to which the NLCTA archive engine writes its data and current index will not change until the engine is restarted. When the engine is restarted (either by reboot of the opi00gtw04 system or restarting manually using the st.ChannelArchiver script referenced previously) the engine startup script determines the current year and month, which is used to determine the directory in which the engine will store data and the name of the current index. Therefore if the NLCTA archive engine is running and storing data in the March 2012 directory it will not store data in the April 2012 directory until the engine is restarted in April. The NLCTA monthly archiver maintenance activities include starting the engine for the first time during a month. Please see the "NLCTA Monthly Archiver Maintenace" section of this document for more details.
IMPORTANT: The NLCTA archiver administrator must create the year/month data directories before they are used-- the NLCTA archiver scripts will not create them as needed. As of March 2012, all monthly directories have been created for the year 2012. Before the next year (e.g., 2013), the NLCTA archiver administrator needs to create the monthly directories for the new year under the following directory:
The NLCTA archiver server subsystem enables archiver data to be retrieved in response to requests by the NLCTA Archive Viewer.
There is a top-level NLCTA archiver index that is used to retrieve archiver data from both archive engine data areas:
The NLCTA archiver data may be displayed by invoking this system's Archive Viewer on a machine such as opi00gtw04:
The NLCTA Archive Viewer obtains archiver data and information by a request to the opi00gtw04 Archiver Data Server executable (invoked for each Archive Viewer request). This executable script may be found on the opi00gtw04 system here:
The following file on the opi00gtw04 system specifies the indexes that may be selected in the Test Facility Archive Viewer:
Unlike the LCLS, FACET, and Test Facility archiver systems the NLCTA archiver system does not read text files with lists of top-level index paths and an associated start/end time for each path to retrieve archiver data. The Archive Data Server uses the serverconfig.xml file to determine the location and name of the sole NLCTA top-level index file.
As previously explained, when the engine is restarted (either by reboot of the opi00gtw04 system or restarting manually using the st.ChannelArchiver script referenced previously) the engine startup script determines the current year and month, which is used to determine the directory in which the engine will store data. Near the first of a new month before the NLCTA archiver engine is restarted during the new month, maintenance work should be done including restarting the engine and insuring that data stored in the new month archiver data directory is accessible in the NLCTA top-level archiver index (and therefore accessible to NLCTA Archive Viewer users). The following procedure describes this monthly maintenance activity:
Verify that the above procedure was performed successfully by plotting any PV for a recent time period in days that spans archiver data for the previous month and the current month. As described previously, the NLCTA Archive Viewer can be invoked by the following command on opi00gtw04 under the cddev account:
There is a concern that the opi00gtw04 will be rebooted after the start of a new month and before the NLCTA archiver maintenance is performed near the start of this new month. This would cause the the new month data not to be available for retrieval until the monthly maintenance could be performed. This has never occurred but is possible. If the NLCTA archiver administrator peforms the monthly maintenance on the first workday after the start of a new month this should not pose even a potential serious problem since NLCTA runs only during normal working hours and the maintenance can be done early on this first workday before a problem is detected.
If the NLCTA archiver administrator is not available to perform the monthly maintenance on the first workday at the start of a new month an editing change to the st.ChannelArchiver script can be made to ensure that archiver data is stored in a specified month directory even if the engine is restarted by a reboot of the opi00gtw04 system during the next month. To do this perform the following procedure:
When it is desired to revert back to the normal st.ChannelArchiver behavior of setting the current engine data directory to the current month the above process can be reversed by commenting out the "set nmonth =" again and CVS committing the changed version of st.ChannelArchiver.
Author: Bob Hall 23-Mar-2012