Fedora Installation and Configuration Guide
Table of Contents
About this guide
Install Prerequisite Software
SRB Installation
Download FS-DS&DB module
Deploy SRB Lowlevel and External Datastore
Prepare Fedora environment, configuring the 'fedora.fcfg' file
Prepare SRB database Environment
This is the installation guide for installing the Fedora-SRB store and database module(FS-DS&DB module). It includes instructions for installing the module, modifying the configuration files for fedora, set-up of SRB collections and resources. As well as instructions for installing and compiling the source code distribution for this module.
Install Prerequisite Software
Required:
-
Fedora Server (minimum version v2.1.1). For version 2.1.1 refer to installation instructions at fedora website. For other versions refer to fedora website http://www.fedora.info. Fedora can be installed either as a standalone server with its own internal tomcat module or deployed as a war file to an existing servlet container (for example: tomcat). The installation instructions for the Fedora-SRB module is same for both server installations.
-
SRB server. Any version > 3.2 is fine, as long as the corresponding jargon.jar (see below) is used for the Fedora-SRB module. If there exists an SRB server that you can use, then there is not need to install a new one, follow instructions below on SRB collection setup. If not, then a new SRB server must be installed, as per instructions given below.
Optional:
-
Postgres The FS-DS&DB module allows creation of digital objects that disseminate data from databases using SQL queries. SRB provides drivers for a variety of databases (Oracle, mySQL, Ingres, Postgres etc). Of all these databases, the author recommends Postgres, for the corresponding SRB code is error free, while the rest require some tweaking or other. Refer to the section titled 'using the Database module' for SRB related set-up requirements to use this module.
SRB Installation
Download SRB and installation instruction from San Diego Supercomputer center's SRB website.
If you are using Linux/Unix for operation system and prefer Postgres database for MCAT, then download the install.pl script and modify required parameters.
SRB source code tar file is encrypted, apply for a decrypt key using the SRB Server Key Request form.
The following configuration worked fine for the author and hence is recommended. A zip archive containing the three tar files and install.pl is available as part of the FS-DS&DB module download below.
SRB : SRB server version 3.4.2
Postgres : Version 8.0.7 (postgresql-8.0.7.tar)
Postgres-ODBC : Version 7.03.02 (psqlodbc-07.03.0200.tar)
Modify the install.pl to change the Admin Name, Admin Password, Domain Name and Zone information. To enable postgres database support for digital objects, make sure the '--enable-psqlobj' option is appended to the configure command line. If you are using the 'install.pl' bundled with the FS-DS&DB module then this has been done for you.
Download Fedora-SRB Data Store & Database Module
The FS-DS&DB module can be obtained by contacting the DART Website at http://www.dart.edu.au.
Unzip the downloaded file. The file structure of the unzipped file is
ROOT/
-- dist-SI1 distribution jars for SI1
-- dartSI1.jar for DB and External datasets
-- jargon.jar java API for SRB
-- srbLowlevel.jar for internal DataStore
-- doc Documents relating to SI1 project work
....optional files...
-- javadoc Javadoc API for DART extensions
-- srbLowlevel_source Source for internal DataStore module
-- src Source for DB and External dataset extensions
-- build.xml build file for source
Deploy SRB Lowlevel & External DataStore module
Follow the steps below to deploy and use the FS-DS&DB module.
-
Copy the dartSI1.jar, srbLowlevel.jar and jargon.jar files to the WEB-INF/lib directory of the fedora server.
-
Modify the configuration file 'fedora.fcfg' as given in the next section,
-
Create the required SRB collections and grant access the relevant user id. (see configuring fedora.fcfg below)
-
Restart fedora Server application.
Source Code:
Prepare Fedora Environment - configuring the fedora.fcfg file
Fedora.fcfg file contains the configuration information for the fedora server. Parameters for two modules require modification. They are
- Low-level module.
Search for module with role = "fedora.server.storage.lowlevel.ILowlevelStorage", set class value as "class=fedorax.server.module.storage.lowlevel.srb.SRBLowlevelStorageModule"
The remove all parameters for this module and add the following instead
- <param name="object_store_base" value="/my/SRB/Object/Path" isFilePath="true"/>
<param name="datastream_store_base" value="/my/SRB/datastream/Path" isFilePath="true"/>
<param name="path_registry" value="fedora.server.storage.lowlevel.DBPathRegistry"/>
<param name="path_algorithm" value="fedora.server.storage.lowlevel.TimestampPathAlgorithm"/>
<param name="file_system" value="fedorax.server.module.storage.lowlevel.srb.SRBIFileSystem"/>
<param name="backslash_is_escape" value="true" oraclevalue="false"/>
<param name="srb_mdasDomainName" value="/my/SRB/domain"/>
<param name="srb_homeDirectory" value="/my/SRBuser/home"/>
<param name="srb_port" value="/my/SRB/port"/>
<param name="srb_username" value="/my/SRB/userID"/>
<param name="srb_password" value="/my/SRB/userPassword"/>
<param name="srb_version" value="SRB_VERSION_3_4"/>
<param name="srb_firewallPortMin" value="/my/SRB/port_min"/>
<param name="srb_host" value="/my/SRB/hostname"/>
<param name="srb_defaultStorageResource" value="/my/SRB/Resource"/>
<param name="srb_firewallPortMax" value="/my/SRB/port_max"/>
- where
/my/SRB/Object/Path refers to the SRB collection in which you would like to store the Fedora FOXML
/my/SRB/datastream/Path refers to the SRB collection in which you would like to store internally managed Fedora Datastreams
/my/SRB/domain SRB Domain (set at install time, found in install.pl script)
/my/SRB/port SRB Port
/my/SRB/userID SRB user who had permissions to read and write to the Object and Datastream collections
/my/SRB/userPassword SRB password for the above userID
/my/SRBUser/home SRB home collection path for the above UserID
/my/SRB/hostname Host name of the machine on which the SRB server is running.
/my/SRB/Resource SRB resource to which the Object and Datastream collections belong. This restricts the object and datastream collection to the same resource.
/my/SRB/port_min SRB firewall port minimum value, populate this field irrespective of whether a firewall is used or not. Default value is 20000
/my/SRB/port_max SRB firewall port maximum value, populate this field irrespective of whether a firewall is used or not. Default value is 20199
- External Content module.
The FS-DS&DB module provides access to SRB managed datasets as external content by implementing an extension to the Fedora Default External Content module. Two types of extensions are available.
- Datasets only. To access SRB managed datasets as external content, replace the default external content module with the extended version provided.
Search for module with role = "fedora.server.storage.ExternalContentManager", set class value as "class=fedorax.server.module.storage.lowlevel.srb.SRBExternalContentManager"
Then, for this module add all the parameters mentioned above for the low-level module.
- Datasets and Database access: Instead of the SRBExternal content manager, use SRB shadow external content manager.
Search for module with role = "fedora.server.storage.ExternalContentManager", set class value as "class=fedorax.server.module.storage.lowlevel.srb.SRBShadowExternalContentManager"
Then, as mentioned above add all the parameters used for the low-level module.
When defining Digital object datastream URL, both SRB External content manager and Shadow manager respond to URL prefix file:// instead of http://. Any URL that starts with http:// is processed by the original Default External Content module provided by fedora.
For example, to fetch dataset stored in SRB collection /home/myColl/myDataset as an external file, the fedora datastream URL will be file://home/myColl/myDataset. If this collection is a shadow directory or shadow database, then parameter &SHADOW=<shadowValue> is appended to the datastream URL. <shadowValue> is either the file/collection name if the datastream refers to a dataset or a valid SQL select query (or part of, depending on how the object is defined in SRB) if the datastream object is a database.

Prepare SRB Database Environment
To use data from SRB managed databases in Digital Objects, the following conditions must be met.
The SRB executable must be compiled to include support for database Large object support. For postgres this involves adding configure option '--enable-psqlobj'.
The Database must be registered as 1. database, 2. resource & 3. SQL dataset object with MCAT. The 'Readme.DAI' file from SRB team (found in supportDocs folder) provides information on how to do this. Latest version of this file can be found at http://www.sdsc.edu/srb/index.php/Database_Access_Interface.
If using ODBC, the file .odbc.ini (SRB user's home directory) must be configured properly. For postgres MCAT, an example is available in the pgsql/etc/odbcinst.ini file. This file must be copied to the home directory as .odbc.ini and rows added to it for the new database to be used.
In addition the <SRBInstalldir>/data/TableConfig file must be updated to include the database userId and password.
For a database on Postgres, the entry in TableConfig must be
PostgresUser 'dbName:<userid>' '<userid>'
PostgresPasswd 'dbName:<userid> '<passwd>' where 'dbName' is the odbc name defined in .odbc.ini file.
To use Select queries in Digital object, define the datastream as 'External' with URL file://<SRB_collection_path>&SHADOW='sql query'
|