Skip to content

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

About This Guide

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.

  1. Copy the dartSI1.jar, srbLowlevel.jar and jargon.jar files to the WEB-INF/lib directory of the fedora server.
     

  2. Modify the configuration file 'fedora.fcfg' as given in the next section,
     

  3. Create the required SRB collections and grant access the relevant user id. (see configuring fedora.fcfg below)
     

  4. Restart fedora Server application.

Source Code:

  • The source code is available under the corresponding source directories. Use the given build.xml file to compile and create a new jar file.

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

  1. 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
       
  2. 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.
    1. 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.
       
    2. 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'