Installation

Compatibility

For the Dashboard to work it must be connected to an ICAT version of 4.7.0 or greater, TopCat 2.0.0 or greater and requires ids.server 1.6.0 or greater.

Prerequisites

  • The dashboard distribution: dashboard-1.0.0-SNAPSHOT-distro.zip
  • A database as described in Database installation instructions installed on the server
  • A suitable deployed container (here assumed to be glassfish though tomcat should be sufficient) to support a web application. Testing has been carried out with Glassfish 4.0 and above. Glassfish installation instructions are available.
  • Python (version 2.4 to 2.7) installed on the server.
  • Python module lxml.
  • The IDS must have its logging level set to READ WRITE PREPARE.
  • If the IDS and ICAT are on Linux machines the Dashboard machine must have access to the ephemeral port ranges. For example Linux Kernel 2.4 has a default range of 32768 to 61000

Summary of steps

  1. Please follow the generic installation instructions
  2. If it is the first time you are installing the Dashboard you will need to run the import script.
  3. Check that it works.

ICAT transfer script

This is a python script that will perform an initial database transfer of data from the ICAT to the dashboard.

To run the script:

icat_transfer --vendor

The vendor option is currently either --oracle or --mysql

Prerequisites

  • The database for the dashboard must be empty to prevent data clashes.
  • IFF Oracle Databases: Python package cx_Oracle is installed.
  • IFF MySql Databases: Python package pymysql is installed.

The icat_transfer.ini file

There will be [Options] for the ICAT and Dashboard Database

oracle.username
The username used to login into the Oracle database.
oracle.password
The password used to login into the Oracle database.
oracle.url
The URL of the Oracle database.
mySql.host
The username used to login into the MySql database.
mySql.port
The port of the MySql database.
mySql.password
The password used to login into the MySql database.
mySql.db
The schema name of the MySql database.

The dashboard-setup.properties file

container
May be either glassfish or wildfly - though only glassfish is working properly at the moment.
home
is the top level of the container installation. For glasssfish it must contain "glassfish/domains" and for wildfly it must contain jboss-modules.jar.
port
is the administration port of the container which is typically 4848 for glassfish and 9990 for wildfly.
secure
must be set to true or false. If true then only https and not http connections will be allowed.
db.driver
is the name of the jdbc driver and must match the jar file for your database that you stored in the previous step.
db.url
url to connect to your database. For example: jdbc:mysql://localhost:3306/icat
db.username
username to connect to your database.
db.password
password to connect to your database.
ids.server
the url of the IDS server that will send JMS messages to the dashboard. For example: idsdev.facility.ac.uk. Please note no prefix.
icat.server
the url of the ICAT server that will send JMS messages to the dashboard.For example: icatdev.facility.ac.uk. Please note no prefix.
db.target
This is optional and may be used to control the SQL generated by the JPA. Values must be chosen from: TargetDatabase
db.logging
This is optional and if set to one of the values in Eclipse Link logging.level controls the logging of JPA generated SQL statements.

The dashboard.properties file

icat.url
The url of the machine hosting the icat service. It should normally just have the scheme, the hostname and the port. For example: https://example.com:443
authenticator
The authenticator mnemonic for the ICAT reader account for the dashboard.
userName
Username of the ICAT reader account for the dashboard.
password
Password of the ICAT reader account for the dashboard.
authorised_accounts
List of accounts in the format mnemonic/name to be allowed access to the dashboard.
collectionTime
The hour that the Dashboard should do its daily collection of data from the ICAT. (24 Hour Clock)
topCatURL
The URL of the TopCat to gather download statistics.

Check that the dashboard works

Enter a url of the form https://example.com/dashboard/ping into a web browse and it should respond: The Dashboard is doing fine!

Post-installation work

Fresh Install

For the Dashboard to start collecting daily information on the ICAT use and to collect meta information on the ICAT from its inception then you will need to run the ICAT transfer python script.

In all cases

Performance

To improve performance:
  • Consider creating the indices defined in indices.sql. Indices can make a huge difference to the database performance but there is also a small cost for each index.