Project

General

Profile

The Configuration DB Wiki

The Configuration DB is considered to be the actual database plus the web service that gives access to the database. The database is hidden from end users by the web service, which presents a number of WSDL interfaces, see below. A Python API has been provided to access the web service. It is expected that most users will access the Configuration DB via the Python API.

There are two separate copies of the database running in separate buildings. These are configured to be master and slave, with updates to the master being automatically pushed to the slave. Both of these machines provide WSDL interfaces that are only accessible to the control room services. During normal operation the control room services will use the master which is situated in the control room. In the event of the failure of the master, the slave will be promoted to master and the control room services will be pointed at the new master.

For access to the data by other users a third web service is provided on a publicly accessible machine cdb.mice.rl.ac.uk. This web service provides read only access to the data via the slave. This isolates the master and control room services from any user activity.

Machine Location Database Web Service
CDB Master control room master control room access only
CDB Slave PPD slave control room access only
cdb.mice.rl.ac.uk PPD N/A read only access

Components of the Configuration DB

  • Alarm Handler
  • Beamline
  • Cabling
  • Calibration
  • Control (PIDCtrl)
  • Cooling Channel
  • Geometry
  • State Machine
  • Target

For descriptions of these components see the Python API

Configuration DB Installation

Public Interface (cdb.mice.rl.ac.uk)

CDB-Server

Archiving

Replication

Nagios

CDB Viewer

This is a web GUI for viewing data from the CDB

http://cdb.mice.rl.ac.uk/cdbviewer/

Requirements

Code

launchpad project page https://launchpad.net/mcdb

WAR files

Server

https://launchpad.net/mcdb/mice.cdb.server

To check out the code use:

bzr branch lp:mcdb/mice.cdb.server

To build the war use:

ant war

To generate the wsdl use:

ant wsdl

Python Client

https://launchpad.net/mcdb/mice.cdb.client.api-python (There is a later version here https://code.launchpad.net/~janusz-martyniak/mcdb/mice.cdb.client.api-python)

To check out the code use:

bzr branch lp:mcdb

To use you will need python-suds installed. Install as root: yum install python-suds

Java Client

https://code.launchpad.net/mcdb/mice.cdb.client.api-java

To check out the code use:

bzr branch lp:mcdb/mice.cdb.client.api-java

This has build time dependencies on mice.cdb.server. Edit build.properties to point to the lib and wsdl directories in mice.cdb.server.

To generate the wsdl use:

ant wsimport

To build the distribution including the javadoc and jar file use:

ant dist

CDB Viewer

https://code.launchpad.net/mcdb/mice.cdb.gwt

To check out the code use:

bzr branch lp:mcdb/mice.cdb.gwt

To build the war use:

ant war

Other Bits and Bobs - need updating

Deployment

Table Definitions

Failover procedure

Run Meta-data Flags

Backup

CDB Editor Scripts

Obsolete

Backups