# # Proai Configuration # ================================ ############################## # Front-End OAI-PMH Behavior # ############################## # For multi-part OAI responses, this specifies the maximum time to wait # between requests before cleaning up the session. # proai.secondsBetweenRequests = 600 # The maximum number of records to include in each part of a # ListRecords response. # proai.incompleteRecordListSize = 250 # The maximum number of record headers to include in each part of a # ListIdentifiers response. # proai.incompleteIdentifierListSize = 500 # The maximum number of sets to include in each part of a # ListSets response. # proai.incompleteSetListSize = 500 ############################ # Back-End Update Behavior # ############################ # How often Proai should poll the driver for updates. # proai.driverPollSeconds = 120 # Set this to false to start the service without polling enabled. # Note: You can also change polling behavior while the service is running # by executing the following SQL against the database: # #
# UPDATE rcAdmin SET pollingEnabled = 0 (or 1 to enable it) ## # The value configured via this property will always be put into effect # when the service is started. # proai.driverPollingEnabled = true # The maximum number of worker threads to use while retrieving new/updated # OAI records from the driver. # proai.maxWorkers = 5 # How many requests each worker thread should make before returning the # batch to the database to be committed. # proai.maxWorkBatchSize = 10 # If a request of the driver for a specific record fails for any reason, # this is the maximum number of times that record should be automatically # retried before giving up on that record. If this is exceeded, the # record information will remain in the rcFailure table until it is dealt # with manually. # proai.maxFailedRetries = 3 # The maximum size the in-memory record commit queue is allowed to reach. # If this threshold is reached, it means that worker threads are returning # results faster than they can be committed to the database by the commit # thread. If this occurs, workers will have to wait until more items have # been committed before they can add any more to the queue. # proai.maxCommitQueueSize = 120 # The maximum number of record updates (from the in-memory commit queue) # that should be committed to the database at one time. # proai.maxRecordsPerTransaction = 60 # Whether to run schema validation during the update process. # This defaults to true. # proai.validateUpdates = true ########################## # File Storage Locations # ########################## # The directory where cache files should be stored. This will be created # if it doesn't exist. # proai.cacheBaseDir = /usr/local/fedora/proai/cache # Where OAI-PMH session data will be stored when needed. # This directory will be created at startup if it doesn't already exist. # # Each session consists of a series of small data files in a uniquely-named # subdirectory beneath this one. They are automatically created and # removed as needed. # proai.sessionBaseDir = /usr/local/fedora/proai/sessions # Where to store schema files if validation is enabled. # proai.schemaDir = /usr/local/fedora/proai/schemas ################################## # Primary Database Configuration # ################################## # The JDBC connection URL for the database that will be used by the cache. # #
Embedded McKoi example:
# jdbc:mckoi:local://build/test/mckoi/mckoi.conf?create_or_boot=true
#
Local McKoi example:
# jdbc:mckoi://localhost/
#
Local MySQL example:
# jdbc:mysql://localhost/proai?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
#
Local Oracle example:
# jdbc:oracle:thin:@localhost:1521:proai
#
Local Postgres example:
# jdbc:postgresql://localhost/proai
#
Mckoi example:
# proai.db.driverClassName = com.mckoi.JDBCDriver
#
MySQL example:
# proai.db.driverClassName = com.mysql.jdbc.Driver
#
Oracle example:
# proai.db.driverClassName = oracle.jdbc.driver.OracleDriver
#
Postgres example:
# proai.db.driverClassName = org.postgresql.Driver
#
# Background: For large repositories, MySQL's default behavior of reading
# all results into memory can cause OutOfMemory
errors in
# Proai. If this value is set to true, memory requirements for Proai
# will be lower, but query performance will suffer. For more detail,
# please see the
# Connector-J
# Implementation Notes.
#
The name of the property should be the driverClassName of the JDBC # driver you're using, plus ".ddlConverter".
# com.mckoi.JDBCDriver.ddlConverter = proai.util.McKoiDDLConverter com.mysql.jdbc.Driver.ddlConverter = proai.util.MySQLDDLConverter oracle.jdbc.driver.OracleDriver.ddlConverter = proai.util.OracleDDLConverter org.postgresql.Driver.ddlConverter = proai.util.PostgresDDLConverter # Whether the database interprets backslashes in SQL strings as # escape characters. This is needed to that Proai can formulate # proper queries against the database. # #The name of the property should be the driverClassName of the JDBC # driver you're using plus ".backslashIsEscape". If unspecified, # backslashIsEscape will be assumed true.
# com.mckoi.JDBCDriver.backslashIsEscape = true com.mysql.jdbc.Driver.backslashIsEscape = true oracle.jdbc.driver.OracleDriver.backslashIsEscape = false org.postgresql.Driver.backslashIsEscape = true ################################### # Fedora Driver: General Settings # ################################### # The class name of the proai.driver.OAIDriver implementation to use. # # This value should never need changing -- it just informs Proai that # we're using the Fedora driver. # proai.driverClassName = fedora.services.oaiprovider.FedoraOAIDriver # The class name of the fedora.services.oaiprovider.QueryFactory # implementation to use. # # This allows the OAI Provider to work with Fedora's Resource Index # whether it's backed by Kowari or MPTStore. If the RI uses Kowari, # the value here should be fedora.services.oaiprovider.ITQLQueryFactory # If it uses MPTStore, the value should be # fedora.services.oaiprovider.MPTQueryFactory # driver.fedora.queryFactory = fedora.services.oaiprovider.ITQLQueryFactory # The base URL of the Fedora repository to query and get records from. # driver.fedora.baseURL = https://fedora.ucg.ac.me/fedora/ # Identifies a Fedora user that has privileges to do a resource index # query via the risearch interface, and can get all needed disseminations # that represent OAI records in the Fedora repository. # driver.fedora.user = fedoraIntCall # Password for the Fedora user. # driver.fedora.pass = vCLKdME4 # When querying the resource index, the maximum number of seconds to # wait for the http connection to be established before giving up. # driver.fedora.queryConnectionTimeout = 30 # When querying the resource index, the maximum number of seconds of # socket inactivity to allow before giving up. # driver.fedora.querySocketTimeout = 600 # When getting xml data from Fedora, the maximum number of seconds to # wait for the http connection to be established before giving up. # driver.fedora.disseminationConnectionTimeout = 30 # When getting xml data from Fedora, the maximum number of seconds of # socket inactivity to allow before giving up. # driver.fedora.disseminationSocketTimeout = 120 # The location of the XML that should be used to respond to OAI # "Identify" requests. # # This can be any URL, but typically it points to a manually-created # datastream within the same Fedora repository that hosts the OAI records. # driver.fedora.identify = http://static.phaidra.ucg.ac.me/proai/Identify.xml # The name of the RELS-EXT property whose value (a plain literal) # contains the OAI item ID for records that are provided by an object. # # A value for this property *must* exist in RELS-EXT before any of an # object's disseminations will be considered to be OAI records. # driver.fedora.itemID = http://www.openarchives.org/OAI/2.0/itemID ################################################ # Fedora Driver: Metadata Format Configuration # ################################################ # Metadata formats to make available. # # This is a space-delimited list of all formats provided, # identified by OAI metadata prefix. # driver.fedora.md.formats = oai_dc mets # The location of the W3C schema for each format. # # Example property name: #driver.fedora.md.format.your_format.loc
.
#
driver.fedora.md.format.oai_dc.loc = http://www.openarchives.org/OAI/2.0/oai_dc.xsd
driver.fedora.md.format.mets.loc = http://www.loc.gov/METS/ http://www.fedora.info/definitions/1/0/mets-fedora-ext1-1.xsd
#driver.fedora.md.format.europeana.loc = http://static.phaidra-entw.univie.ac.at/proai/europeana.xsd
#driver.fedora.md.format.test_format.loc = http://example.org/test_format.xsd
#driver.fedora.md.format.formatX.loc = http://example.org/formatX.xsd
#driver.fedora.md.format.formatY.loc = http://example.org/formatY.xsd
# The namespace URI for each format.
#
# Example property name:
# driver.fedora.md.format.your_format.uri
.
#
driver.fedora.md.format.oai_dc.uri = http://www.openarchives.org/OAI/2.0/oai_dc/
driver.fedora.md.format.mets.uri = http://www.loc.gov/METS/
#driver.fedora.md.format.europeana.uri = http://phaidra.univie.ac.at/XML/europeana
#driver.fedora.md.format.test_format.uri = http://example.org/test_format/
#driver.fedora.md.format.formatX.uri = http://example.org/formatX/
#driver.fedora.md.format.formatY.uri = http://example.org/formatY/
# The Fedora dissemination type for each format.
#
# A Fedora dissemination type is a URI starting with
# info:fedora/*/
and ending with a datastream ID (such as "DC"),
# a Behavior Definition PID followed by "/methodName",
# or a Behavior Definition PID followed by "/methodName?name=value".
The dissType is the key to mapping an OAI metadata format to # a kind of Fedora dissemination. Here are a few examples:
# ## info:fedora/*/DC ; identifies the "DC" datastream # # info:fedora/*/demo:1/getDC ; identifies the "getDC" method of the # ; demo:1 behavior definition # # info:fedora/*/demo:1/getMD?fmt=dc ; identifies the "getMD" method of the # ; demo:1 behavior definition, when # ; invoked with the required "fmt" # ; parameter ## # When the OAI provider queries Fedora for records in your_format, # it uses this special value to constrain the query to only those # disseminations that are in the expected format. # Thus, all records that the OAI provider considers to be in # your_format must have this dissemination type. # # Example property name: #
driver.fedora.md.format.your_format.dissType
.
#
driver.fedora.md.format.oai_dc.dissType = info:fedora/*/DC
driver.fedora.md.format.mets.dissType = info:fedora/*/bdef:Asset/getEuropeana
#driver.fedora.md.format.test_format.dissType = info:fedora/*/test_format
#driver.fedora.md.format.formatX.dissType = info:fedora/*/demo:OAIAdvancedItem-Service/getMetadata?format=x
#driver.fedora.md.format.formatY.dissType = info:fedora/*/demo:OAIAdvancedItem-Service/getMetadata?format=y
# The Fedora dissemination type for each format.
#
# This optional property identifies the OAI "about" dissemination
# type for your_format. If specified for your_format, then the OAI provider
# will attempt to find disseminations of this type for each object
# that has a matching your_format.dissType. If such a dissemination
# is found, for that particular object, the information therein
# will be used as the "about" metadata for the record.
#
# Example property name:
# driver.fedora.md.format.your_format.about.dissType
.
#
#driver.fedora.md.format.oai_dc.about.dissType = info:fedora/*/about_oai_dc
#driver.fedora.md.format.formatX.about.dissType = info:fedora/*/demo:OAIAdvancedItem-Service/getMetadataAbout?format=x
#driver.fedora.md.format.formatY.about.dissType = info:fedora/*/demo:OAIAdvancedItem-Service/getMetadataAbout?format=y
###############################################
# Fedora Driver: Set Membership Configuration #
###############################################
# The name of the RELS-EXT property that indicates the unique setSpec
# string of a Fedora object representing an OAI set.
# This property must exist on any Fedora object that should
# represent an OAI set.
#
#driver.fedora.setSpec = http://www.openarchives.org/OAI/2.0/setSpec
# The name of the RELS-EXT property that indicates the name of
# a Fedora object representing an OAI set.
# In addition to setSpec, this property must also exist on any
# Fedora object that should represent an OAI set.
#
#driver.fedora.setSpec.name = http://www.openarchives.org/OAI/2.0/setName
# The dissemination type for the XML that describes a set.
# If a dissemination of this type is available for a Fedora object
# representing an OAI set, the content of the dissemination will
# be used in ListSets responses.
#
#driver.fedora.setSpec.desc.dissType = info:fedora/*/SetInfo.xml
# The "triple pattern" identifying the path from objects to the
# setsSpecs (short names) of sets they are members of.
#
# The path must contain $item and $setSpec, with the $item # variable representing a Fedora object in the resource index, # and the $setSpec representing the setSpec name.
# #driver.fedora.itemSetSpecPath = $setThe normal behavior is that the Fedora-controlled "state" property # of the dissemination (or datastream) itself indicates the oai deleted # status. This can be used to specify the status via any object # property, if desired.
# #driver.fedora.deleted = info:fedora/fedora-system:def/model#state