Component | Version | Installation | Documentation |
---|---|---|---|
ids.server | 1.7.0 | Installation Guide | Component Documentation |
Chapter 07: Install the ICAT Data Service (IDS)
Overview
As stated in the previous chapter, the ICAT Data Service (IDS) controls access to the underlying data files which the ICAT Server catalogues and indexes. To configure the IDS, we inform it where to find the components that we set up in previous chapters: the privileged user accounts, the storage plugin and the ICAT Server and where to put its files.
Install the IDS
wget https://repo.icatproject.org/repo/org/icatproject/ids.server/1.7.0/ids.server-1.7.0-distro.zip
unzip ids.server-1.7.0-distro.zip
Configure the IDS
The ids-setup.properties
should be familiar from previous component installations. There is one addtional parameter: we set libraries
to the name of the storage plugin jar file which we installed in the previous chapter. In the example below, there is a *
which allows the jar file to be found regardless of version.
#Glassfish
secure = false
container = Glassfish
home = /home/glassfish/glassfish4
port = 4848
#Any libraries needed (space separated list of jars in domain's lib/applibs
libraries=ids.storage_file*.jar
We create a cache directory for the IDS to store its data.
mkdir -p /home/glassfish/icat/main/ids/cache
The ids.properties
file is quite large but most of the parameters can safely be left as their default values. For this tutorial, we only need to tell the IDS where to find the ICAT Server, who the privileged users are and where to store its data.
- Set
icat.url
to the location of the ICAT Server:http://localhost:8080
. In our case, since we are not creating a secure installation,http
is fine. - Set the
cache.dir
parameter to the point to the directory we created above:/home/glassfish/icat/main/ids/cache
. - Set the
rootUserNames
parameter tosimple/root
- theroot
user configured using thesimple
authentication mechanism. Users listed here are permitted to check the status of the whole IDS. More accounts could be listed here as a space-separated list. - Set the
reader
parameter tosimple username root password pw
. The format for this parameter is 'mechanismusername
username_of_accountpassword
password_of_account' - so set it to the same privilegedroot
account as before. The user specified here is permitted to read all data in the IDS. - Finally, configure file checking. When a file is added to the IDS, its checksum is stored in the ICAT database. The IDS periodically scans files to check that their checksum matches what it expects. The location of two files needs to be configured:
filesCheck.lastIdFile
- which contains the ID of the last file to be checked (this enables the IDS to continue checking files where it left off if it is restarted); andfilesCheck.errorLog
- which contains a list of files with errors.
# General properties
icat.url = http://localhost:8080
plugin.zipMapper.class = org.icatproject.ids.storage.ZipMapper
plugin.main.class = org.icatproject.ids.storage.MainFileStorage
plugin.main.properties = ids.storage_file.main.properties
cache.dir = /home/glassfish/icat/main/ids/cache
preparedCount = 10000
processQueueIntervalSeconds = 5
rootUserNames = simple/root
sizeCheckIntervalSeconds = 60
reader = simple username root password pw
!readOnly = true
maxIdsInQuery = 1000
# Properties for archive storage
plugin.archive.class = org.icatproject.ids.storage.ArchiveFileStorage
plugin.archive.properties = ids.storage_file.archive.properties
writeDelaySeconds = 60
startArchivingLevel1024bytes = 5000000
stopArchivingLevel1024bytes = 4000000
storageUnit = dataset
tidyBlockSize = 500
# File checking properties
filesCheck.parallelCount = 5
filesCheck.gapSeconds = 5
filesCheck.lastIdFile = /home/glassfish/icat/main/ids/lastIdFile
filesCheck.errorLog = /home/glassfish/icat/main/ids/errorLog
# Link properties
linkLifetimeSeconds = 3600
# JMS Logging
log.list = READ WRITE
# Uncomment to permit configuration of logback
!logback.xml = ids.logback.xml
# JMS - uncomment and edit if needed
!jms.topicConnectionFactory = java:comp/DefaultJMSConnectionFactory
Install the IDS
As before:
./setup -vv install
Test the IDS
We can check that the IDS is running by visiting the URL of the virtual machine (VM) followed by /ids/ping
. In our tutorial, we can check this from inside the VM by using the following command:
curl http://localhost:8080/ids/ping
which should output the text IdsOK
.