Installation

Compatibility

This will work with an ICAT version of 4.3.0 or greater.

Prerequisites

  • The ids distribution: ids.server-1.0.1-distro.zip
  • 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 3.1.2. Glassfish installation instructions are available.
  • A deployed plugin or plugins for the storage mechanism you wish to use. Please see plugin to see the interface you must implement. You might also like to look at the file storage plugin as an example.
  • Python (version 2.4 to 2.7) installed on the server.

Summary of steps

  1. Please follow the generic installation instructions
  2. Check that it works.

The ids.setup.properties file

glassfish
is the top level of the glassfish installation. It must contain "glassfish/domains", and will be referred to here as GLASSFISH_HOME as if an environment variable had been set.
port
is the administration port of the chosen glassfish domain which is typically 4848.

The ids.properties file

General Properties

icat.url
The url of the machine hosting the ids service. It should normally just have the scheme, the hostname and the port. For example: https://example.com:443
plugin.main.class
The class name of the main storage plugin. The class must be deployed in the lib/applibs directory of your domain and must be packaged with all it dependencies.
plugin.main.properties
Optional property file for the main storage plugin.
cache.dir
The location (absolute or relative to the config directory of the domain) of a directory to hold mostly zip files.
preparedCacheSize1024bytes
The maximum size to allow for prepared zip files in the cache.
preparedCount
The maximum number of failed prepareData attempts to hold in memory.
processQueueIntervalSeconds
The frequency of checking the process queue. This is used both for cleaning old information from memory and for triggering movements between main and archive storage (if selected).
rootUserNames
A space separated list of users allowed to make the getServiceStatus call.
sizeCheckIntervalSeconds
How frequently to check the cache sizes and clean up if necessary.
readOnly
If true disables write operations (put and delete).

Properties for archive storage

plugin.archive.class
The class name of the archive storage plugin. The class must be deployed in the lib/applibs directory of your domain and must be packaged with all it dependencies.
plugin.archive.properties
Optional property file for the archive storage plugin.
datasetCacheSize1024bytes
The maximum size to allow for dataset zip files in the cache.
writeDelaySeconds
The amount of time to wait before writing to archive storage. This exists to allow enough time for all the datafiles to be added to a dataset before it is zipped and written.
compressDatasetCache
If true the dataset cache and the archive storage of datasets will all be compressed. This takes longer to write and is only useful if you know that the data will compress well.
tolerateWrongCompression
If true a get or prepareData which is for a single dataset will make use of the dataset cache even though it does not match the requested compression.
reader
space separated icat plugin name and credentials for a user permitted to read all datasets, datafiles, investigations and facilities. For example: db username root password password.

Check that the ids server works

Enter a url of the form https://example.com:443/ids/ping into a web browse and it should respond: IdsOK . Note the url is that of the machine hosting the IDS followed by "/ids/ping"

Possible glassfish problem

With this component installed it can be impossible to start the glassfish domain. The conditions under which this occurs are not understood. A recipe to get glassfish started may be found at: http:/code.google.com/p/icatproject/wiki/Glassfish