Skip to content

Instantly share code, notes, and snippets.

@Avasz
Created November 21, 2013 05:33
Show Gist options
  • Select an option

  • Save Avasz/7576556 to your computer and use it in GitHub Desktop.

Select an option

Save Avasz/7576556 to your computer and use it in GitHub Desktop.
<?xml version="1.0" encoding="UTF-8"?>
<server xmlns="http://www.fedora.info/definitions/1/0/config/" class="fedora.server.BasicServer">
<param name="repositoryName" value="Fedora Repository">
<comment>Defines a human readable name for the Fedora server; default is
Fedora Repository.</comment>
</param>
<param name="adminEmailList" value="[email protected]">
<comment>Defines one or more email addresses for server administrators;
list is space delimited.</comment>
</param>
<param name="fedoraServerPort" value="8080">
<comment>Defines the port number on which the Fedora server runs;
default is 8080.</comment>
</param>
<param name="fedoraShutdownPort" value="8005">
<comment>Defines the port number used to shutdown the Fedora sever;
default is 8005.</comment>
</param>
<param name="fedoraRedirectPort" value="8443">
<comment>Defines the redirect port of the Fedora sever; default is 8443.</comment>
</param>
<param name="fedoraServerHost" value="localhost">
<comment>Defines the host name for the Fedora server, as seen from the
outside world.</comment>
</param>
<param name="datastreamExpirationLimit" value="300">
<comment>Controls the size of the datastream mediation hash by removing
entries outside the specified threshold. The value is specified in
seconds. Note this value must be greater than the limit specified for
the datastreamMediationLimit.</comment>
</param>
<param name="datastreamMediationLimit" value="5000">
<comment>Determines the time interval in which external mechanisms must
respond to requests by the Fedora server. The value is specified in
milliseconds. The value specified should be set high enough to allow
for an average response time from any single external mechanisms. Note
this value must be less than the limit specified for the
datastreamExpirationLimit.</comment>
</param>
<module role="fedora.server.storage.lowlevel.ILowlevelStorage" class="fedora.server.storage.lowlevel.DefaultLowlevelStorageModule">
<param name="object_store_base" value="data/objects" isFilePath="true">
<comment>The root directory for the internal storage of Fedora
objects. This value should be adjusted based on your installation
environment. This value should not point to the same location as
datastream_store_base.</comment>
</param>
<param name="datastream_store_base" value="data/datastreams" isFilePath="true">
<comment>The root directory for the internal storage of Managed
Content datastreams. This value should be adjusted based on your
installation environment. This value should not point to the same
location as object_store_base.</comment>
</param>
<param name="path_registry" value="fedora.server.storage.lowlevel.DBPathRegistry">
<comment>The java class used to determine the path registry; default
is fedora.server.storage.lowlevel.DBPathRegistry.</comment>
</param>
<param name="path_algorithm" value="fedora.server.storage.lowlevel.TimestampPathAlgorithm">
<comment>The java class used to determine the path algorithm;
default is fedora.server.storage.lowlevel.TimestampPathAlgorithm.</comment>
</param>
<param name="file_system" value="fedora.server.storage.lowlevel.GenericFileSystem">
<comment>The java class that determines the implementation class;
default is fedora.server.storage.lowlevel.GenericFileSystem.</comment>
</param>
<param name="backslash_is_escape" value="true">
<comment>Whether the escape character (i.e. (the token beginning an
escape sequence) for the backing database (which includes
registry tables) is the backslash character. This is needed to
correctly store and retrieve filepaths from the registry
tables, if running under Windows/DOS. (Set to true for MySQL and
Postgresql, false for Oracle and McKoi.</comment>
</param>
</module>
<module role="fedora.server.security.Authorization" class="fedora.server.security.DefaultAuthorization">
<comment>Builds and manages Fedora's authorization structure.</comment>
<param name="REPOSITORY-POLICIES-DIRECTORY" value="data/fedora-xacml-policies/repository-policies" isFilePath="true"/>
<param name="REPOSITORY-POLICY-GUITOOL-POLICIES-DIRECTORY" value="data/fedora-xacml-policies/repository-policies-generated-by-policyguitool" isFilePath="true">
<comment>This parameter is for future use.</comment>
</param>
<param name="XACML-COMBINING-ALGORITHM" value="com.sun.xacml.combine.OrderedDenyOverridesPolicyAlg"/>
<param name="ENFORCE-MODE" value="permit-all-requests"/>
<param name="POLICY-SCHEMA-PATH" value="xsd/cs-xacml-schema-policy-01.xsd"/>
<param name="VALIDATE-REPOSITORY-POLICIES" value="true"/>
<param name="VALIDATE-OBJECT-POLICIES-FROM-FILE" value="false"/>
<param name="VALIDATE-OBJECT-POLICIES-FROM-DATASTREAM" value="false"/>
</module>
<module role="fedora.server.security.BackendSecurity" class="fedora.server.security.DefaultBackendSecurity">
<comment>Description: Interface to the backend service security
configuration. This module initializes backend service security
information in the server by parsing the beSecurity configuration file.
This file is located in the distribution in
$FEDORA_HOME/dist/server/config/beSecurity.xml. The configuration file
is read once at server startup.</comment>
<param name="beSecurity_validation" value="false">
<comment>Controls whether beSecurity config file is validated
against the beSecurityDescription schema. The default is
&quot;false&quot;. Valid values are &quot;true&quot; or
&quot;false&quot;.</comment>
</param>
<param name="beSecurity_char_encoding" value="utf-8">
<comment>The character encoding used for the beSecurity
configuration file. The default is &quot;utf-8&quot;. The value
specified must correspond to the character encoding used in the
beSecurity configuration file.</comment>
</param>
</module>
<module role="fedora.server.storage.DOManager" class="fedora.server.storage.DefaultDOManager">
<comment>The interface to the storage subsystem. This provides
context-appropriate DOReaders and DOWriters for reflecting on and
writing to the objects stored in the repository. It also provides
methods for reflecting on the contents of the repository as a whole.
NOTE: If you are using the Fedora Generic Search service, you can
enable automatic signaling to the service by changing the class
of this module to "fedora.server.storage.GSearchDOManager", then
populating the gSearchRESTURL, gSearchUsername, and gSearchPassword
parameters as needed.</comment>
<param name="pidNamespace" value="pustakalaya">
<comment>This is the namespace id for pids of newly-created objects.
This should be unique for a repository. It can be from 1 to 17
characters, and may only contain A-Z, a-z, 0-9, &apos;.&apos;, or &apos;-&apos; (dash).</comment>
</param>
<param name="retainPIDs" value="demo test pustakalaya fedora-bdef fedora-bmech tutorial">
<comment>Namespaces of PIDs to retain during the ingest process. When an
object is ingested, Fedora normally allocates a unique PID within
pidNamespace for it regardless of what the object says its PID is. This
option provides a way to override that behavior on a per-pid-namespace
basis. If specified, this should be a space-delimited list of pid
namespaces that will be accepted in the object as-is. Default value is
&quot;demo test&quot;.</comment>
</param>
<param name="storagePool" value="localMySQLPool">
<comment>The named connection pool from which read/write database
connections are to be provided for the storage subsystem (see the
ConnectionPoolManager module). Default is the default provided by the
ConnectionPoolManager.</comment>
</param>
<param name="storageCharacterEncoding" value="UTF-8">
<comment>If the serialization format is text-based, this is the
character encoding that should be used. Default is UTF-8.</comment>
</param>
<param name="defaultExportFormat" value="foxml1.0"/>
<param name="gSearchRESTURL" value="http://localhost:8080/fedoragsearch/rest">
<comment>The REST endpoint of the Fedora Generic Search service.
This parameter is only required if GSearchDOManager is
used.</comment>
</param>
<param name="gSearchUsername" value="exampleUsername">
<comment>The username for accessing the REST endpoint of the
Fedora Generic Search service. This parameter is only required if
GSearchDOManager is used, and the service requires
authentication.</comment>
</param>
<param name="gSearchPassword" value="examplePassword">
<comment>The associated password for accessing the REST endpoint
of the Fedora Generic Search service. This parameter is only
required if GSearchDOManager is used, and the service requires
authentication.</comment>
</param>
</module>
<module role="fedora.server.management.Management" class="fedora.server.management.DefaultManagement">
<comment>The management subsystem. This implements the methods necessary
to fulfill API-M requests without regard to:
- how the service is exposed
- how bytestreams and java types might be marshalled/demarshalled over the wire
- how the storage subsystem is implemented.</comment>
<param name="autoChecksum" value="false">
<comment>Controls whether a checksum is automatically computed for
every datastream as the datastream is added to the repository. This
will allow the integrity of datastream contents to be periodically
checked to insure the object is not corrupted.</comment>
</param>
<param name="checksumAlgorithm" value="MD5">
<comment>Specifies which checksumming algorithm is to be used when
automatically computing checksums as specified by the above
parameter. Valid values are: MD5 SHA-1 SHA-256 SHA-384 SHA-512.</comment>
</param>
</module>
<module role="fedora.server.access.Access" class="fedora.server.access.DefaultAccess">
<comment>Description: The access subsystem. This implements the methods
necessary to fulfill API-A requests without regard to:
- how the service is exposed
- how bytestreams and java types might be marshalled/demarshalled
over the wire.</comment>
<param name="doMediateDatastreams" value="false">
<comment>A boolean switch indicating whether Datastream Mediation is
activated or not. Datastream Mediation is required if using basic
authentication for API-A. When basic authentication is enabled for
API-A, backend services used by custom disseminations may or may not be
capable of authenticating with the Fedora server. Datastream mediation
coupled with the backend service configuration information in the
beSecurity.xml file enables the Fedora server to determine which backend
services are required to authenticate and which ones are allowed to
connect without authentication. Datastream mediation provides additional
repository security by not exposing the physical location of Referenced
Content datastreams to external mechanisms(services). Instead of
exposing the actual physical location of Referenced Content datastreams,
Datastream Mediation functions as a proxy requiring all external
services to communicate through the Fedora server to resolve the
location of Referenced Content datastreams.
IMPORTANT: For Datastream Mediation to function, the Fedora server must
be internet accessible using the configured name for fedoraServerHost
and fedoraServerPort. For example, using the default fedoraServerHost
value of &quot;localhost&quot; will not work if you have remote backend services
since the hostname of &quot;localhost&quot; will not be resolvable as the Fedora
server by the remote backend services. This requirement can be difficult
to satisfy if the Fedora server is located behind a firewall and you do
not have ready access to the firewall&apos;s configuration to enable the
required access. If the Fedora server is behind a firewall and you have
no access to the firewall&apos;s configuration, you are limited to keeping
Datastream Mediation turned off. Note that this will also prevent you
from using basic authentication with API-A. The default value of
doMediateDatastreams is false.</comment>
</param>
</module>
<module role="fedora.server.access.DynamicAccess" class="fedora.server.access.DynamicAccessModule">
<comment>The dynamic behavior module for the access subsystem. This
implements the methods necessary to fulfill API-A requests without
regard to:
- dynamically associating a default behavior definition and mechanism with objects
- (Future) dynamically associating other behavior definitions and mechanisms
with objects
- running disseminations of dynamic behaviors</comment>
<param name="fedora-system:1" value="fedora.server.access.internalservices.Bootstrap">
<comment>The interface that defines the methods of the bootstrap
disseminator. These methods are &quot;built-in&quot; to the Fedora system, and
are dynamically associated with every behavior definition and
behavior mechanism object.</comment>
</param>
<param name="fedora-system:2" value="fedora.server.access.internalservices.BootstrapImpl">
<comment>The class that implements the methods of the bootstrap
disseminator. These method implementations are &quot;built-in&quot; to the
Fedora system, and are dynamically associated with every behavior
definition and behavior mechanism object. This class can be thought
of as implementing an &quot;internal service&quot; whereas other disseminators
use external services (described by WSDL) to do their work.</comment>
</param>
<param name="fedora-system:3" value="fedora.server.access.defaultdisseminator.DefaultDisseminator">
<comment>The interface that defines the methods of the default
disseminator. These methods are &quot;built-in&quot; to the Fedora system, and
are dynamically associated with every object.</comment>
</param>
<param name="fedora-system:4" value="fedora.server.access.defaultdisseminator.DefaultDisseminatorImpl">
<comment>The class that implements the methods of the default
disseminator. These method implementations are &quot;built-in&quot; to the
Fedora system, and are dynamically associated with every object.
This class can be though of as implementing an &quot;internal service&quot;
whereas other disseminators use external services (described by
WSDL) to do their work.</comment>
</param>
</module>
<module role="fedora.server.search.FieldSearch" class="fedora.server.search.FieldSearchSQLModule">
<comment>Supports the API-A simpleSearch and advancedSearch methods.</comment>
<param name="maxResults" value="100">
<comment>(required, must be &gt; 0)
The maximum number of records to
return as the result of a search. Even if a client requests more
results at a time, this is the cutoff value.</comment>
</param>
<param name="maxSecondsPerSession" value="500">
<comment>(required, must be &gt; 0)
The maximum number of seconds that the server guarantees subsequent
search results may be obtained. This is only used in cases where the
number of results is greater than maxResults (as specified by the
server [above] or the client [in the search request]).</comment>
</param>
<param name="connectionPool" value="localMySQLPool">
<comment>(optional) To make unspecified, comment out or delete the
whole param line as opposed to using an empty string,
default=ConnectionPoolManager&apos;s default) The connectionPool
providing the connection to the database to be used. Warning: When
setting these values, keep in mind that while a session is not timed
out (maxSecondsPerSession seconds haven&apos;t elapsed, and not all
results have been requested), a connection from the pool is tied up.
Therefore, the connectionPool should be at least of size n, large
enough to accomodate n simultaneous search sessions. The longer
maxSecondsPerSession is, the more chance you have of tying up all
available connections from the pool. Therefore, keep
maxSecondsPerSession fairly low, but still reasonable for an
automated program or user to serially get a long list of results,
and make sure you have a connectionPool large enough to accomodate
your users.</comment>
</param>
<param name="indexDCFields" value="true">
<comment>(optional, default is true) Whether the content of the DC
datastream should be examined and the contents indexed, for each object.
You may wish to save time and space by disabling DC field indexing,
particularly if you have an external search service (such as Fedora
Generic Search) that already fulfills this need.
Note: If you change this value on a Fedora repository that has been
running for some time, you will need to perform a SQL rebuild using the
Fedora Rebuilder tool if you want to change objects that have already
been ingested.</comment>
</param>
</module>
<module role="fedora.server.resourceIndex.ResourceIndex" class="fedora.server.resourceIndex.ResourceIndexModule">
<comment>Supports the ResourceIndex.</comment>
<param name="level" value="0">
<comment>(required)
Index level. Currently, only 0, 1 and 2 are supported
levels. 0 = off: do not load the ResourceIndex 1 = basic: system
metadata, RELS-EXT, disseminations 2 = basic + method permutations
WARNING: changing the level (except to 0) requires
running the Resource Index Rebuilder.</comment>
</param>
<param name="datastore" value="localKowariTriplestore">
<comment>(required)
Name of the triplestore to use. WARNING: changing the
triplestore running the Resource Index Rebuilder.</comment>
</param>
<param name="syncUpdates" value="false">
<comment>(optional, default is false)
Whether to flush the triple buffer before
returning from object modification operations.
Specifying this as true will ensure that RI queries
immediately reflect the latest triples.
Specifying false will not provide this guarantee,
but can significantly reduce roundtrip time for
API-M operations (depending on the triplestore
implementation).</comment>
</param>
<param name="alias:test" value="http://example.org/terms#">
<comment>(optional) Aliases that can be used for queries. The param
name of an alias starts with the string &quot;alias:&quot; and is followed by
the name of the alias (shortcut) for the value, which is a URI
prefix. For example: name=&quot;alias:test&quot;
value=&quot;http://example.org/terms#&quot; will allow a query to use
test:apple instead of http://example.org/terms#apple</comment>
</param>
</module>
<module role="fedora.oai.OAIProvider" class="fedora.server.oai.FedoraOAIProviderModule">
<comment>Description: Exposes the repository for OAI harvesters.</comment>
<param name="repositoryName" value="Your Fedora Repository Name Here"/>
<param name="repositoryDomainName" value="example.org"/>
<param name="adminEmails" value="[email protected] [email protected]"/>
<param name="friends" value="http://arXiv.org/oai2 http://memory.loc.gov/cgi-bin/oai2_0"/>
<param name="maxRecords" value="100"/>
<param name="maxHeaders" value="100"/>
</module>
<module role="fedora.server.storage.translation.DOTranslator" class="fedora.server.storage.translation.DOTranslatorModule">
<comment>Supports translation from DigitalObject to a stream of some
format, and vice-versa. The parameters below specify
serializer/deserializer classes to be used for a given format. Those
classes must implement the DOSerializer/DODeserializer interfaces.</comment>
<param name="serializer_metslikefedora1" value="fedora.server.storage.translation.METSLikeDOSerializer"/>
<param name="deserializer_metslikefedora1" value="fedora.server.storage.translation.METSLikeDODeserializer"/>
<param name="serializer_foxml1.0" value="fedora.server.storage.translation.FOXMLDOSerializer"/>
<param name="deserializer_foxml1.0" value="fedora.server.storage.translation.FOXMLDODeserializer"/>
</module>
<module role="fedora.server.management.PIDGenerator" class="fedora.server.management.BasicPIDGenerator">
<comment>The pid generator.</comment>
<param name="pidgen_log_dir" value="pidgen"/>
</module>
<module role="fedora.server.storage.replication.DOReplicator" class="fedora.server.storage.replication.DefaultDOReplicator">
<comment>Supports synching data from definitive storage with
dissemination db.</comment>
</module>
<module role="fedora.server.storage.ConnectionPoolManager" class="fedora.server.storage.ConnectionPoolManagerImpl">
<comment>This module facilitates obtaining ConnectionPools</comment>
<param name="defaultPoolName" value="localMySQLPool"/>
<param name="poolNames" value="localMySQLPool"/>
</module>
<module role="fedora.server.validation.DOValidator" class="fedora.server.validation.DOValidatorModule">
<comment>Description: Supports validation of digital objects, including
XML Schema validation, Schematron validation (to Fedora Rules schema
written in Schematron language), and other programatic validation
including referential integrity checking of existence and
availability of distributed data and/or services.</comment>
<param name="xsd_metslikefedora1" value="xsd/mets-fedora-ext.xsd">
<comment>this is local path for the Fedora-METS XML
schema used to do XML schema validation of digital objects.</comment>
</param>
<param name="xsd_foxml1.0" value="xsd/foxml1-0.xsd">
<comment>this is local path for the Fedora FOXML XML schema
used to do XML schema validation of digital objects</comment>
</param>
<param name="xsd_xacml_policy1.0" value="xsd/cs-xacml-schema-policy-1.0.xsd">
<comment>this is local path for the OASIS XACML XML
policy schema used to do XML schema validation of XACML policies.</comment>
</param>
<param name="rules_metslikefedora1" value="schematron/metsExtRules1-0.xml">
<comment>this is the local path to the Fedora
Schematron Rules used to do Fedora-specific on Fedora-METS XML
files.</comment>
</param>
<param name="rules_foxml1.0" value="schematron/foxmlRules1-0.xml">
<comment>This is the local path to the Fedora
Schematron Rules used to do Fedora-specific on FOXML XML files. -
schtron_preprocessor: this is the local path to the &quot;skeleton&quot; style
sheet for schematron processing</comment>
</param>
<param name="schtron_preprocessor" value="schematron/preprocessor.xslt"/>
<param name="tempDir" value="work">
<comment>(required)
This is a directory that the validation module can use as a work space, as
when it must write a temporary file.</comment>
</param>
</module>
<module role="fedora.server.storage.ExternalContentManager" class="fedora.server.storage.DefaultExternalContentManager">
<comment>This module facilitates obtaining external content via HTTP</comment>
</module>
<module role="fedora.server.utilities.ThreadMonitor" class="fedora.server.utilities.ThreadMonitorModule">
<comment>Prints basic information about the system memory and running
threads to the log periodically for diagnostic purposes.</comment>
<param name="active" value="false">
<comment>(optional)
To make unspecified, comment out or delete the
whole param line as opposed to using an empty string, default=no.
Indicates whether to activate this module. &quot;yes&quot; or &quot;true&quot; activates it.</comment>
</param>
<param name="onlyMemory" value="false">
<comment>(optional, default=false)
Only logs free memory, not thread details.</comment>
</param>
<param name="pollInterval" value="5000">
<comment>(optional)
To make unspecified, comment out or delete the whole
param line as opposed to using an empty string, default=10000.
indicates how many milliseconds to wait between each polling.</comment>
</param>
</module>
<datastore id="localMySQLPool">
<comment>MySQL database on localhost with db name of fedora22. Each
connection pool instance has several configuration parameter that
can be used to tune the options for the connection pool. It is
recommended that you not change the default values unless you are
trying to address a specific performance issue. For additional
information regarding connection pool options, refer to the Apache
Commons Pool API documentation at
http://jakarta.apache.org/commons/pool/apidocs/index.html.</comment>
<param name="dbUsername" value="fedoraAdmin">
<comment>The database user name.</comment>
</param>
<param name="dbPassword" value="FedoraSucks2012">
<comment>The database password.</comment>
</param>
<param name="jdbcURL" value="jdbc:mysql://localhost/fedora22?useUnicode=true&amp;amp;characterEncoding=UTF-8&amp;amp;autoReconnect=true">
<comment>The JDBC connection URL.</comment>
</param>
<param name="jdbcDriverClass" value="com.mysql.jdbc.Driver">
<comment>The JDBC driver class name.</comment>
</param>
<param name="ddlConverter" value="fedora.server.utilities.MySQLDDLConverter"/>
<param name="maxActive" value="100">
<comment>The maximum number of active instances in pool.</comment>
</param>
<param name="maxIdle" value="10">
<comment>The maximum number of idle instances in pool.</comment>
</param>
<param name="maxWait" value="-1">
<comment>The maximum amount of time in milliseconds the
borrowObject() method should wait before throwing an Exception when
whenExhaustedAction is set to WHEN_EXHAUSTED_BLOCK. A value less
than zero indicates block indefinitely.</comment>
</param>
<param name="minIdle" value="0">
<comment>The minimum of idle instances in pool.</comment>
</param>
<param name="minEvictableIdleTimeMillis" value="1800000">
<comment>The minimum amount of time in milliseconds an object can be
idle in pool before eligible for eviction (if applicable). A value
less than zero indicates no object will be evicted due to idle time
alone.</comment>
</param>
<param name="numTestsPerEvictionRun" value="3">
<comment>The number of objects to be examined on each run of idle
evictor thread (if applicable). A value less than zero indicates
that ceil(numIdle)/abs(numTestsPerEvictionRun) will be run.</comment>
</param>
<param name="timeBetweenEvictionRunsMillis" value="-1">
<comment>The time in milliseconds to sleep between runs of the idle
object evictor thread. A value less than zero indicates no idle
evictor thread is run.</comment>
</param>
<param name="testOnBorrow" value="true">
<comment>When true objects are validated before borrowed from the
pool.</comment>
</param>
<param name="testOnReturn" value="true">
<comment>When true, objects are validated before returned to the
pool.</comment>
</param>
<param name="testWhileIdle" value="true">
<comment>When true, objects are validated by the idle object evictor
thread.</comment>
</param>
<param name="whenExhaustedAction" value="1">
<comment>Action to take when a new object is requested and the the pool has
reached maximum number of active objects. Valid values are:
0 (fail i.e., throw Exception)
1 (block i.e., wait until pool resources are freed)
2 (grow i.e., increase the size of the pool).</comment>
</param>
</datastore>
<datastore id="localMcKoiPool">
<comment>McKoi database on localhost running on port 9157 Each
connection pool instance has several configuration parameter that
can be used to tune the options for the connection pool. It is
recommended that you not change the default values unless you are
trying to address a specific performance issue. For additional
information regarding connection pool options, refer to the Apache
Commons Pool API documentation at
http://jakarta.apache.org/commons/pool/apidocs/index.html.</comment>
<param name="dbUsername" value="fedoraAdmin">
<comment>The database user name.</comment>
</param>
<param name="dbPassword" value="fedoraAdmin">
<comment>The database password.</comment>
</param>
<param name="jdbcURL" value="jdbc:mckoi://localhost:9157/">
<comment>The JDBC connection URL.</comment>
</param>
<param name="jdbcDriverClass" value="com.mckoi.JDBCDriver">
<comment>The JDBC driver class name.</comment>
</param>
<param name="ddlConverter" value="fedora.server.utilities.McKoiDDLConverter"/>
<param name="maxActive" value="100">
<comment>The maximum number of active instances in pool.</comment>
</param>
<param name="maxIdle" value="10">
<comment>The maximum number of idle instances in pool.</comment>
</param>
<param name="maxWait" value="-1">
<comment>The maximum amount of time in milliseconds the
borrowObject() method should wait before throwing an Exception when
whenExhaustedAction is set to WHEN_EXHAUSTED_BLOCK. A value less
than zero indicates block indefinitely.</comment>
</param>
<param name="minIdle" value="0">
<comment>The minimum of idle instances in pool.</comment>
</param>
<param name="minEvictableIdleTimeMillis" value="1800000">
<comment>The minimum amount of time in milliseconds an object can be
idle in pool before eligible for eviction (if applicable). A value
less than zero indicates no object will be evicted due to idle time
alone.</comment>
</param>
<param name="numTestsPerEvictionRun" value="3">
<comment>The number of objects to be examined on each run of idle
evictor thread (if applicable). A value less than zero indicates
that ceil(numIdle)/abs(numTestsPerEvictionRun) will be run.</comment>
</param>
<param name="timeBetweenEvictionRunsMillis" value="-1">
<comment>The time in milliseconds to sleep between runs of the idle
object evictor thread. A value less than zero indicates no idle
evictor thread is run.</comment>
</param>
<param name="testOnBorrow" value="true">
<comment>When true objects are validated before borrowed from the
pool.</comment>
</param>
<param name="testOnReturn" value="true">
<comment>When true, objects are validated before returned to the
pool.</comment>
</param>
<param name="testWhileIdle" value="true">
<comment>When true, objects are validated by the idle object evictor
thread.</comment>
</param>
<param name="whenExhaustedAction" value="1">
<comment>Action to take when a new object is requested and the the pool has
reached maximum number of active objects. Valid values are:
0 (fail i.e., throw Exception)
1 (block i.e., wait until pool resources are freed)
2 (grow i.e., increase the size of the pool).</comment>
</param>
</datastore>
<datastore id="localOraclePool">
<comment>Oracle database on localhost with SID=fedora22 Each
connection pool instance has several configuration parameter that
can be used to tune the options for the connection pool. It is
recommended that you not change the default values unless you are
trying to address a specific performance issue. For additional
information regarding connection pool options, refer to the Apache
Commons Pool API documentation at
http://jakarta.apache.org/commons/pool/apidocs/index.html.</comment>
<param name="dbUsername" value="fedoraAdmin">
<comment>The database user name.</comment>
</param>
<param name="dbPassword" value="fedoraAdmin">
<comment>The database password.</comment>
</param>
<param name="jdbcURL" value="jdbc:oracle:thin:@localhost:1521:fedora22">
<comment>The JDBC connection URL.</comment>
</param>
<param name="jdbcDriverClass" value="oracle.jdbc.driver.OracleDriver">
<comment>The JDBC driver class name.</comment>
</param>
<param name="ddlConverter" value="fedora.server.utilities.OracleDDLConverter"/>
<param name="maxActive" value="100">
<comment>The maximum number of active instances in pool.</comment>
</param>
<param name="maxIdle" value="10">
<comment>The maximum number of idle instances in pool.</comment>
</param>
<param name="maxWait" value="-1">
<comment>The maximum amount of time in milliseconds the
borrowObject() method should wait before throwing an Exception when
whenExhaustedAction is set to WHEN_EXHAUSTED_BLOCK. A value less
than zero indicates block indefinitely.</comment>
</param>
<param name="minIdle" value="0">
<comment>The minimum of idle instances in pool.</comment>
</param>
<param name="minEvictableIdleTimeMillis" value="1800000">
<comment>The minimum amount of time in milliseconds an object can be
idle in pool before eligible for eviction (if applicable). A value
less than zero indicates no object will be evicted due to idle time
alone.</comment>
</param>
<param name="numTestsPerEvictionRun" value="3">
<comment>The number of objects to be examined on each run of idle
evictor thread (if applicable). A value less than zero indicates
that ceil(numIdle)/abs(numTestsPerEvictionRun) will be run.</comment>
</param>
<param name="timeBetweenEvictionRunsMillis" value="-1">
<comment>The time in milliseconds to sleep between runs of the idle
object evictor thread. A value less than zero indicates no idle
evictor thread is run.</comment>
</param>
<param name="testOnBorrow" value="true">
<comment>When true objects are validated before borrowed from the
pool.</comment>
</param>
<param name="testOnReturn" value="true">
<comment>When true, objects are validated before returned to the
pool.</comment>
</param>
<param name="testWhileIdle" value="true">
<comment>When true, objects are validated by the idle object evictor
thread.</comment>
</param>
<param name="whenExhaustedAction" value="1">
<comment>Action to take when a new object is requested and the the pool has
reached maximum number of active objects. Valid values are:
0 (fail i.e., throw Exception)
1 (block i.e., wait until pool resources are freed)
2 (grow i.e., increase the size of the pool).</comment>
</param>
<param name="connection.SetBigStringTryClob" value="true"/>
</datastore>
<datastore id="localPostgreSQLPool">
<comment>PostgreSQL database on localhost with db name of fedora22. Each
connection pool instance has several configuration parameter that
can be used to tune the options for the connection pool. It is
recommended that you not change the default values unless you are
trying to address a specific performance issue. For additional
information regarding connection pool options, refer to the Apache
Commons Pool API documentation at
http://jakarta.apache.org/commons/pool/apidocs/index.html.</comment>
<param name="dbUsername" value="fedoraAdmin">
<comment>The database user name.</comment>
</param>
<param name="dbPassword" value="fedoraAdmin">
<comment>The database password.</comment>
</param>
<param name="jdbcURL" value="jdbc:postgresql:fedora22">
<comment>The JDBC connection URL.</comment>
</param>
<param name="jdbcDriverClass" value="org.postgresql.Driver">
<comment>The JDBC driver class name.</comment>
</param>
<param name="ddlConverter" value="fedora.server.utilities.PostgresDDLConverter"/>
<param name="maxActive" value="100">
<comment>The maximum number of active instances in pool.</comment>
</param>
<param name="maxIdle" value="10">
<comment>The maximum number of idle instances in pool.</comment>
</param>
<param name="maxWait" value="-1">
<comment>The maximum amount of time in milliseconds the
borrowObject() method should wait before throwing an Exception when
whenExhaustedAction is set to WHEN_EXHAUSTED_BLOCK. A value less
than zero indicates block indefinitely.</comment>
</param>
<param name="minIdle" value="0">
<comment>The minimum of idle instances in pool.</comment>
</param>
<param name="minEvictableIdleTimeMillis" value="1800000">
<comment>The minimum amount of time in milliseconds an object can be
idle in pool before eligible for eviction (if applicable). A value
less than zero indicates no object will be evicted due to idle time
alone.</comment>
</param>
<param name="numTestsPerEvictionRun" value="3">
<comment>The number of objects to be examined on each run of idle
evictor thread (if applicable). A value less than zero indicates
that ceil(numIdle)/abs(numTestsPerEvictionRun) will be run.</comment>
</param>
<param name="timeBetweenEvictionRunsMillis" value="-1">
<comment>The time in milliseconds to sleep between runs of the idle
object evictor thread. A value less than zero indicates no idle
evictor thread is run.</comment>
</param>
<param name="testOnBorrow" value="true">
<comment>When true objects are validated before borrowed from the
pool.</comment>
</param>
<param name="testOnReturn" value="true">
<comment>When true, objects are validated before returned to the
pool.</comment>
</param>
<param name="testWhileIdle" value="true">
<comment>When true, objects are validated by the idle object evictor
thread.</comment>
</param>
<param name="whenExhaustedAction" value="1">
<comment>Action to take when a new object is requested and the the pool has
reached maximum number of active objects. Valid values are:
0 (fail i.e., throw Exception)
1 (block i.e., wait until pool resources are freed)
2 (grow i.e., increase the size of the pool).</comment>
</param>
</datastore>
<datastore id="localKowariTriplestore">
<comment>local Kowari Triplestore used by the Resource Index</comment>
<param name="connectorClassName" value="org.trippi.impl.kowari.KowariConnector">
<comment>The name of the Trippi Connector class used to communicate
with the triplestore.</comment>
</param>
<param name="remote" value="false">
<comment>Tells the connector to communicate with Kowari in remote or
local mode. If true, the host parameter must be defined. If false,
the path parameter must be defined.</comment>
</param>
<param name="path" value="data/resourceIndex" isFilePath="true">
<comment>The local path to the main triplestore directory.</comment>
</param>
<param name="serverName" value="fedora">
<comment>The server name for rmi binding.</comment>
</param>
<param name="modelName" value="ri">
<comment>The name of the model to use.</comment>
</param>
<param name="poolInitialSize" value="3">
<comment>The initial size of the session pool used for queries.
Note: A value of 0 will cause the Resource Index to operate in
synchronized mode: concurrent read/write requests are put in a queue
and handled in FIFO order; this will severely impair performance and
is only intended for debugging.</comment>
</param>
<param name="poolMaxGrowth" value="-1">
<comment>Maximum number of additional sessions the pool may add. If
specified as -1, no limit will be placed on pool growth.</comment>
</param>
<param name="readOnly" value="false">
<comment>Whether the triplestore should be read-only. Most Fedora
repositories will set this to false.</comment>
</param>
<param name="autoCreate" value="true">
<comment>Create the model if it doesn&apos;t already exist.
At startup, the model will be automatically created. In addition, an
XML schema datatyped model named &quot;xsd&quot; will also be automatically
created.</comment>
</param>
<param name="autoTextIndex" value="false">
<comment>Whether to propagate adds/deletes to a full-text
[Full-Text] model automatically. While a very useful feature,
enabling full-text indexing adds significantly to object ingest
times. If true, the text model will be named modelName-fullText.
Note that if this is true and autoCreate is true, the text model
will also be created if it doesn&apos;t already exist.</comment>
</param>
<param name="memoryBuffer" value="true">
<comment>Whether to use a memory buffer or a database buffer for
write operations. The buffer is where triples are stored before
they&apos;re actually written. Normally, a memory buffer will be
sufficient. However, in certain server environments, a database
buffer is the better option, offering higher capacity and
persistence.</comment>
</param>
<param name="autoFlushDormantSeconds" value="5">
<comment>Seconds of buffer inactivity that will trigger an
auto-flush. If this threshold is reached, flushing will occur in the
background, during which time the buffer is still available for
writing.</comment>
</param>
<param name="autoFlushBufferSize" value="20000">
<comment>The size at which the buffer should be auto-flushed. If
this threshold is reached, flushing will occur in the background,
during which time the buffer is still available for
writing.</comment>
</param>
<param name="bufferFlushBatchSize" value="20000">
<comment>The number of updates to send to the triplestore at a time.
This should be the same size as, or smaller than
autoFlushBufferSize.</comment>
</param>
<param name="bufferSafeCapacity" value="40000">
<comment>The maximum size the buffer can reach before being forcibly
flushed. If this threshold is reached, flushing will occur in the
foreground and the buffer will be locked for writing until it is
finished. This should be larger than autoFlushBufferSize.</comment>
</param>
</datastore>
<datastore id="localPostgresMPTTriplestore">
<comment>Example local MPTStore backed by Postgres.
To use this triplestore for the Resource Index:
1) In fedora.fcfg, change the "datastore" parameter of the
ResourceIndex module to localPostgresMPTTriplestore.
2) Login to your Postgres server as an administrative user and
run the following commands:
CREATE ROLE "fedoraAdmin" LOGIN PASSWORD 'fedoraAdmin'
NOINHERIT CREATEDB
VALID UNTIL 'infinity';
CREATE DATABASE "riTriples"
WITH ENCODING='SQL_ASCII'
OWNER="fedoraAdmin";
3) Make sure you can login to your Postgres server as fedoraAdmin.
4) Download the appropriate Postgres JDBC 3 driver from
http://jdbc.postgresql.org/download.html
and make sure it's accessible to your servlet container.
If you're running Tomcat, putting it in common/lib/ will work.</comment>
<param name="connectorClassName" value="org.trippi.impl.mpt.MPTConnector"/>
<param name="ddlGenerator" value="org.nsdl.mptstore.impl.postgres.PostgresDDLGenerator"/>
<param name="jdbcDriver" value="org.postgresql.Driver"/>
<param name="jdbcURL" value="jdbc:postgresql://localhost/riTriples"/>
<param name="username" value="fedoraAdmin"/>
<param name="password" value="fedoraAdmin"/>
<param name="poolInitialSize" value="3"/>
<param name="poolMaxSize" value="10"/>
<param name="backslashIsEscape" value="true"/>
<param name="fetchSize" value="1000"/>
<param name="autoFlushDormantSeconds" value="5"/>
<param name="autoFlushBufferSize" value="1000"/>
<param name="bufferFlushBatchSize" value="1000"/>
<param name="bufferSafeCapacity" value="2000"/>
</datastore>
</server>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment