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.
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