HI,

configuring oaiprovider 1.1 with fedora 2.2.1 on windows platform

I have been partially successful. I have got it working to the point where I can create sets based on dc:type, However still unable to get any records displayed:

The tomcat keep throwing error/exceptions both in default state as well as configured state; at the frequency of the Proai polling interval. I am attaching the screen dump of tomcat exceptions along with proai.properties file.

Some of the request/response I am getting are given below:

Request: http://lby229999:8080/oaiprovider/?verb=Identify

Response:

<?xml version="1.0" encoding="UTF-8" ?>

- <OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/ http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">

  <responseDate>2007-10-03T08:29:07Z</responseDate>

  <request verb="Identify">http://lby229999:8080/oaiprovider/</request>

  </OAI-PMH>

Request: http://lby229999:8080/oaiprovider/?verb=ListSets

Response: <?xml version="1.0" encoding="UTF-8" ?>

- <OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/

http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">

  <responseDate>2007-10-03T06:15:24Z</responseDate>

  <request verb="ListSets">http://lby229999:8080/oaiprovider/</request>

- <ListSets>

- <set>

  <setSpec>image</setSpec>

  <setName>image</setName>

  </set>

- <set>

  <setSpec>conference paper</setSpec>

  <setName>conference paper</setName>

  </set>

- <set>

  <setSpec>journal article</setSpec>

  <setName>journal article</setName>

  </set>

- <set>

  <setSpec>book chapter</setSpec>

  <setName>book chapter</setName>

  </set>

- <set>

  <setSpec>thesis</setSpec>

  <setName>thesis</setName>

  </set>

- <set>

  <setSpec>journal article</setSpec>

  <setName>journal article</setName>

  </set>

- <set>

  <setSpec>collection</setSpec>

  <setName>collection</setName>

  </set>

- <set>

  <setSpec>Journal article</setSpec>

  <setName>Journal article</setName>

  </set>

- <set>

  <setSpec>patent</setSpec>

  <setName>patent</setName>

  </set>

- <set>

  <setSpec>Journal article</setSpec>

  <setName>Journal article</setName>

  </set>

- <set>

  <setSpec>authored book</setSpec>

  <setName>authored book</setName>

  </set>

- <set>

  <setSpec>Conference paper</setSpec>

  <setName>Conference paper</setName>

  </set>

- <set>

  <setSpec>Conference Paper</setSpec>

  <setName>Conference Paper</setName>

  </set>

  </ListSets>

  </OAI-PMH>

However when I try listing the records I am getting an error:

Request: http://lby229999:8080/oaiprovider/?verb=ListRecords&metadataPrefix=oai_dc

Response:

<?xml version="1.0" encoding="UTF-8" ?>

- <OAI-PMH xmlns="http://www.openarchives.org/OAI/2.0/"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/

http://www.openarchives.org/OAI/2.0/OAI-PMH.xsd">

  <responseDate>2007-10-03T06:22:50Z</responseDate>

  <request verb="ListRecords"

metadataPrefix="oai_dc">http://lby229999:8080/oaiprovider/</request>

  <error code="noRecordsMatch">no records match your selection criteria</error>

  </OAI-PMH>


The steps I followed till now are as below:

1) loaded the oaiprovider.war in webapps directory of tomcat.

2) created a database 'proai' in the mysql with all permissions to username proai and some password

3) rebuild the fedora resource index with value = 1

4) modify the proai.properties file with the required changes such as updating the fedora details(username/password) and mysql details (username/password) and including the port information for the jdbc connection URL to database for eg we are using mysql on port 3306

proai.db.url =

jdbc:mysql://localhost:3306/proai?useUnicode=true&characterEncoding=UTF-

8&autoReconnect=true

Tomcat_exceptions:

3/10/2007 17:50:29 org.apache.coyote.http11.Http11Protocol init

INFO: Initializing Coyote HTTP/1.1 on http-8080

3/10/2007 17:50:29 org.apache.catalina.startup.Catalina load

INFO: Initialization processed in 891 ms

3/10/2007 17:50:29 org.apache.catalina.core.StandardService start

INFO: Starting service Catalina

3/10/2007 17:50:29 org.apache.catalina.core.StandardEngine start

INFO: Starting Servlet Engine: Apache Tomcat/5.0.28

3/10/2007 17:50:29 org.apache.catalina.core.StandardHost start

INFO: XML validation disabled

3/10/2007 17:50:29 org.apache.catalina.core.StandardHost getDeployer

INFO: Create Host deployer for direct deployment ( non-jmx )

3/10/2007 17:50:29 org.apache.catalina.core.StandardHostDeployer install

INFO: Processing Context configuration file URL file:C:\fedora\tomcat\conf\Catalina\localhost\admin.xml

3/10/2007 17:50:30 org.apache.struts.util.PropertyMessageResources <init>

INFO: Initializing, config='org.apache.struts.util.LocalStrings', returnNull=true

3/10/2007 17:50:30 org.apache.struts.util.PropertyMessageResources <init>

INFO: Initializing, config='org.apache.struts.action.ActionResources', returnNull=true

3/10/2007 17:50:31 org.apache.struts.util.PropertyMessageResources <init>

INFO: Initializing, config='org.apache.webapp.admin.ApplicationResources', returnNull=true

3/10/2007 17:50:32 org.apache.catalina.core.StandardHostDeployer install

INFO: Processing Context configuration file URL file:C:\fedora\tomcat\conf\Catalina\localhost\balancer.xml

3/10/2007 17:50:32 org.apache.catalina.core.StandardHostDeployer install

INFO: Processing Context configuration file URL file:C:\fedora\tomcat\conf\Catalina\localhost\fedora.xml

WARN 2007-10-03 17:50:37.370 [main] (AbstractBlockFile) File size was not a multiple of blockSize: "c:\fedora\data\resourceIndex\graph.g_0123".

WARN 2007-10-03 17:50:37.839 [main] (AbstractBlockFile) File size was not a multiple of blockSize: "c:\fedora\data\resourceIndex\graph.g_1203".

WARN 2007-10-03 17:50:38.355 [main] (AbstractBlockFile) File size was not a multiple of blockSize: "c:\fedora\data\resourceIndex\graph.g_2013".

WARN 2007-10-03 17:50:38.761 [main] (AbstractBlockFile) File size was not a multiple of blockSize: "c:\fedora\data\resourceIndex\graph.g_3012".

WARN 2007-10-03 17:50:39.214 [main] (AbstractBlockFile) File size was not a multiple of blockSize: "c:\fedora\data\resourceIndex\graph.g_3120".

WARN 2007-10-03 17:50:39.667 [main] (AbstractBlockFile) File size was not a multiple of blockSize: "c:\fedora\data\resourceIndex\graph.g_3201".

WARN 2007-10-03 17:50:40.511 [main] (ManagedBlockFile) NOTE: Correcting size of file: c:\fedora\data\resourceIndex\graph.g_0123

WARN 2007-10-03 17:50:40.511 [main] (ManagedBlockFile) NOTE: Correcting size of file: c:\fedora\data\resourceIndex\graph.g_1203

WARN 2007-10-03 17:50:40.511 [main] (ManagedBlockFile) NOTE: Correcting size of file: c:\fedora\data\resourceIndex\graph.g_2013

WARN 2007-10-03 17:50:40.527 [main] (ManagedBlockFile) NOTE: Correcting size of file: c:\fedora\data\resourceIndex\graph.g_3012

WARN 2007-10-03 17:50:40.527 [main] (ManagedBlockFile) NOTE: Correcting size of file: c:\fedora\data\resourceIndex\graph.g_3120

WARN 2007-10-03 17:50:40.527 [main] (ManagedBlockFile) NOTE: Correcting size of file: c:\fedora\data\resourceIndex\graph.g_3201

3/10/2007 17:51:06 org.apache.catalina.core.StandardHostDeployer install

INFO: Processing Context configuration file URL file:C:\fedora\tomcat\conf\Catalina\localhost\manager.xml

3/10/2007 17:51:06 org.apache.catalina.core.StandardHostDeployer install

INFO: Installing web application at context path /fedora-demo from URL file:c:/fedora/tomcat/webapps/fedora-demo

3/10/2007 17:51:06 org.apache.catalina.startup.ContextConfig applicationConfig

INFO: Missing application web.xml, using defaults only StandardEngine[Catalina].StandardHost[localhost].StandardContext[/fedora-demo]

3/10/2007 17:51:06 org.apache.catalina.core.StandardHostDeployer install

INFO: Installing web application at context path /fop from URL file:c:/fedora/tomcat/webapps/fop

3/10/2007 17:51:06 org.apache.catalina.core.StandardHostDeployer install

INFO: Installing web application at context path /imagemanip from URL file:c:/fedora/tomcat/webapps/imagemanip

3/10/2007 17:51:06 org.apache.catalina.core.StandardHostDeployer install

INFO: Installing web application at context path /oaiprovider from URL file:c:/fedora/tomcat/webapps/oaiprovider

3/10/2007 17:51:07 org.apache.catalina.core.StandardHostDeployer install

INFO: Installing web application at context path /saxon from URL file:c:/fedora/tomcat/webapps/saxon

3/10/2007 17:51:07 org.apache.commons.digester.Digester endElement

SEVERE: End event threw exception

org.apache.commons.logging.LogConfigurationException: java.lang.ClassNotFoundException: org.apache.commons.logging.impl.Log4jFactory (Caused by java.lang.ClassNotFoundException: org.apache.commons.logging.impl.Log4jFactory)

        at org.apache.commons.logging.LogFactory$2.run(LogFactory.java:579)

        at java.security.AccessController.doPrivileged(Native Method)

        at org.apache.commons.logging.LogFactory.newFactory(LogFactory.java:517)

        at org.apache.commons.logging.LogFactory.getFactory(LogFactory.java:254)

        at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:351)

        at org.apache.commons.beanutils.ConvertUtilsBean.<init>(ConvertUtilsBean.java:130)

        at org.apache.commons.beanutils.BeanUtilsBean.<init>(BeanUtilsBean.java:110)

        at org.apache.commons.beanutils.BeanUtilsBean$1.initialValue(BeanUtilsBean.java:68)

        at org.apache.commons.beanutils.ContextClassLoaderLocal.get(ContextClassLoaderLocal.java:80)

        at org.apache.commons.beanutils.BeanUtilsBean.getInstance(BeanUtilsBean.java:78)

        at org.apache.commons.beanutils.ConvertUtilsBean.getInstance(ConvertUtilsBean.java:115)

        at org.apache.commons.beanutils.ConvertUtils.convert(ConvertUtils.java:217)

        at org.apache.commons.digester.CallMethodRule.end(CallMethodRule.java:457)

        at org.apache.commons.digester.Rule.end(Rule.java:276)

        at org.apache.commons.digester.Digester.endElement(Digester.java:1058)

        at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)

        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)

        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)

        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)

        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)

        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)

        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)

        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)

        at org.apache.commons.digester.Digester.parse(Digester.java:1548)

        at org.apache.catalina.startup.ContextConfig.defaultConfig(ContextConfig.java:515)

        at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:623)

        at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:216)

        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)

        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4290)

        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:823)

        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)

        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)

        at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:277)

        at org.apache.catalina.core.StandardHost.install(StandardHost.java:832)

        at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:625)

        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:431)

        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:983)

        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:349)

        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)

        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091)

        at org.apache.catalina.core.StandardHost.start(StandardHost.java:789)

        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)

        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478)

        at org.apache.catalina.core.StandardService.start(StandardService.java:480)

        at org.apache.catalina.core.StandardServer.start(StandardServer.java:2313)

        at org.apache.catalina.startup.Catalina.start(Catalina.java:556)

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

        at java.lang.reflect.Method.invoke(Method.java:585)

        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:287)

        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425)

Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.impl.Log4jFactory

        at java.net.URLClassLoader$1.run(URLClassLoader.java:200)

        at java.security.AccessController.doPrivileged(Native Method)

        at java.net.URLClassLoader.findClass(URLClassLoader.java:188)

        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)

        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)

        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)

        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)

        at java.lang.Class.forName0(Native Method)

        at java.lang.Class.forName(Class.java:164)

        at org.apache.commons.logging.LogFactory$2.run(LogFactory.java:568)

        ... 51 more

3/10/2007 17:51:07 org.apache.catalina.startup.ContextConfig defaultConfig

SEVERE: Parse error in default web.xml

org.apache.commons.logging.LogConfigurationException: java.lang.ClassNotFoundException: org.apache.commons.logging.impl.Log4jFactory (Caused by java.lang.ClassNotFoundException: org.apache.commons.logging.impl.Log4jFactory)

        at org.apache.commons.digester.Digester.createSAXException(Digester.java:2540)

        at org.apache.commons.digester.Digester.createSAXException(Digester.java:2566)

        at org.apache.commons.digester.Digester.endElement(Digester.java:1061)

        at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)

        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)

        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)

        at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)

        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)

        at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)

        at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)

        at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)

        at org.apache.commons.digester.Digester.parse(Digester.java:1548)

        at org.apache.catalina.startup.ContextConfig.defaultConfig(ContextConfig.java:515)

        at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:623)

        at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:216)

        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)

        at org.apache.catalina.core.StandardContext.start(StandardContext.java:4290)

        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:823)

        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)

        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)

        at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:277)

        at org.apache.catalina.core.StandardHost.install(StandardHost.java:832)

        at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:625)

        at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:431)

        at org.apache.catalina.startup.HostConfig.start(HostConfig.java:983)

        at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:349)

        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)

        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091)

        at org.apache.catalina.core.StandardHost.start(StandardHost.java:789)

        at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)

        at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478)

        at org.apache.catalina.core.StandardService.start(StandardService.java:480)

        at org.apache.catalina.core.StandardServer.start(StandardServer.java:2313)

        at org.apache.catalina.startup.Catalina.start(Catalina.java:556)

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

        at java.lang.reflect.Method.invoke(Method.java:585)

        at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:287)

        at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425)




Mysql tables are as follows, rcitem returns nothing, however rcset returns all the resource types.

mysql> select * from rcitem;

Empty set (0.00 sec)

mysql> select * from rcset;

+--------+-------------------+-----------------------------+

| setKey | setSpec           | xmlPath                     |

+--------+-------------------+-----------------------------+

|     14 | image             | 2007/10/03/18/11/22.003.xml |

|     15 | conference paper  | 2007/10/03/18/11/22.035.xml |

|     16 | journal article   | 2007/10/03/18/11/22.050.xml |

|     17 | book chapter      | 2007/10/03/18/11/22.066.xml |

|     18 | thesis            | 2007/10/03/18/11/22.081.xml |

|     19 |  journal article  | 2007/10/03/18/11/22.097.xml |

|     20 | collection        | 2007/10/03/18/11/22.113.xml |

|     21 | Journal article   | 2007/10/03/18/11/22.128.xml |

|     22 | patent            | 2007/10/03/18/11/22.144.xml |

|     23 |  Journal article  | 2007/10/03/18/11/22.160.xml |

|     24 | authored book     | 2007/10/03/18/11/22.175.xml |

|     25 |  Conference paper | 2007/10/03/18/11/22.191.xml |

|     26 | Conference Paper  | 2007/10/03/18/11/22.206.xml |

+--------+-------------------+-----------------------------+

13 rows in set (0.00 sec)

Proai.properties

#

#                        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:

#

# <pre>

#     UPDATE rcAdmin SET pollingEnabled = 0 (or 1 to enable it)

# </pre>

#

# 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 = /tmp/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 = /tmp/proai/sessions

# Where to store schema files if validation is enabled.

#

proai.schemaDir = /tmp/proai/schemas

##################################

# Primary Database Configuration #

##################################

# The JDBC connection URL for the database that will be used by the cache.

#

# <p>Embedded McKoi example:<br/>

#    <code>jdbc:mckoi:local://build/test/mckoi/mckoi.conf?create_or_boot=true</code>

# </p>

# <p>Local McKoi example:<br/>

#    <code>jdbc:mckoi://localhost/</code>

# </p>

# <p>Local MySQL example:<br/>

#    <code>jdbc:mysql://localhost/proai?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true</code>

# </p>

# <p>Local Oracle example:<br/>

#    <code>jdbc:oracle:thin:@localhost:1521:proai</code>

# </p>

# <p>Local Postgres example:<br/>

#    <code>jdbc:postgresql://localhost/proai</code>

# </p>

#

proai.db.url = jdbc:mysql://localhost:3306/proai?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true

# The class name of the JDBC driver appropriate for use

# with the connection url.  The appropriate library must be

# in the classpath.

#

# <p>Mckoi example:<br/>

#   <code>proai.db.driverClassName = com.mckoi.JDBCDriver</code>

# </p>

# <p>MySQL example:<br/>

#   <code>proai.db.driverClassName = com.mysql.jdbc.Driver</code>

# </p>

# <p>Oracle example:<br/>

#   <code>proai.db.driverClassName = oracle.jdbc.driver.OracleDriver</code>

# </p>

# <p>Postgres example:<br/>

#   <code>proai.db.driverClassName = org.postgresql.Driver</code>

# </p>

#

proai.db.driverClassName = com.mysql.jdbc.Driver

# If using MySQL, this indicates whether to stream query results

# one-at-a-time from the database to conserve memory.  If unspecified,

# this defaults to false.

#

# <p>

# Background: For large repositories, MySQL's default behavior of reading

# all results into memory can cause <code>OutOfMemory</code> 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

# <a href="http://dev.mysql.com/doc/connector/j/en/cj-implementation-notes.html">Connector-J

# Implementation Notes</a>.

# </p>

#

proai.db.mySQLResultTrickling = false

# The database user.  This user should already exist in the database

# and must have permission to create, modify, and query tables.

#

proai.db.username        = proai

# The password for the database user.

#

proai.db.password        = proai


###################################

# Advanced Database Configuration #

###################################

# The maxiumum number of connections from the pool that may be active

# (leased) at once.  If unspecified, this defaults to 8.

#

proai.db.maxActive = 16

# The maximum number of milliseconds to wait for a connection from the

# pool if none are available.  If unspecified, this defaults to -1,

# which means "indefinite".

#

proai.db.maxWait = 5000

# proai.db.*

#

# Any other properties defined by the Apache commons-DBCP project

# can be specified.  See the full list (and documentation) at

# http://jakarta.apache.org/commons/dbcp/configuration.html

#

# To use standard DBCP properties, just prefix them with "proai.db."

# here. 

# proai.db.connection.*

#

# To use JDBC driver-specific properties (in DBCP, these

# are called "connectionProperties"), prefix them with

# "proai.db.connection.".

# The Java class responsible for creating the database tables required

# by Proai's record cache.

#

# <p>The name of the property should be the driverClassName of the JDBC

# driver you're using, plus ".ddlConverter".</p>

#

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.

#

# <p>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.</p>

#

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 = http://localhost:8080/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 = fedoraAdmin

# Password for the Fedora user.

#

driver.fedora.pass = fedoraAdmin

# 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://localhost:8080/fedora/get/demo:MyRepository/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 = dc:identifier


################################################

# 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 test_format formatX formatY

# The location of the W3C schema for each format.

#

# Example property name:

# <code>driver.fedora.md.format.your_format.loc</code>.

#

driver.fedora.md.format.oai_dc.loc = http://www.openarchives.org/OAI/2.0/oai_dc.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:

# <code>driver.fedora.md.format.your_format.uri</code>.

#

driver.fedora.md.format.oai_dc.uri = http://www.openarchives.org/OAI/2.0/oai_dc/

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.

#

# <p>A Fedora dissemination type is a URI starting with

# <code>info:fedora/*/</code> 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".</p>

#

# <p>The dissType is the key to mapping an OAI metadata format to

# a kind of Fedora dissemination.  Here are a few examples:</p>

#

# <pre>

# 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

# </pre>

#

# 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:

# <code>driver.fedora.md.format.your_format.dissType</code>.

#

driver.fedora.md.format.oai_dc.dissType = info:fedora/*/DC

driver.fedora.md.format.test_format.dissType = info:fedora/*/test_format

driver.fedora.md.format.formatX.dissType = info:fedora/*/demo:XYFormatsBDef/getMetadata?format=x

driver.fedora.md.format.formatY.dissType = info:fedora/*/demo:XYFormatsBDef/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:

# <code>driver.fedora.md.format.your_format.about.dissType</code>.

#

driver.fedora.md.format.oai_dc.about.dissType = info:fedora/*/about_oai_dc

driver.fedora.md.format.formatX.about.dissType = info:fedora/*/demo:XYFormatsBDef/getMetadataAbout?format=x

driver.fedora.md.format.formatY.about.dissType = info:fedora/*/demo:XYFormatsBDef/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 = dc:type

# 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 = dc:type

# 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.

#

# <p>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.</p>

#

driver.fedora.itemSetSpecPath = $item <dc:type> $setSpec

#########################################

# Fedora Driver: MPTStore Configuration #

#########################################

# The values below only need to be configured if using

# MPTQueryFactory (Fedora's Resource Index is backed by MPTStore).

#

NOTE=.

# The JDBC driver class for connecting to the MPTStore database.

#

driver.fedora.mpt.db.driverClassName = org.postgresql.Driver

# The database-specific DDLGenerator to use for MPTStore.

#

driver.fedora.mpt.db.ddlGenerator = org.nsdl.mptstore.impl.postgres.PostgresDDLGenerator

# The JDBC URL for connecting to the MPTStore database.

#

driver.fedora.mpt.jdbc.url = jdbc:postgresql://localhost/riTriples

# The user to connect to the MPTStore database as.

#

driver.fedora.mpt.jdbc.user = fedoraAdmin

# The MPTStore database user's password.

#

driver.fedora.mpt.jdbc.password = fedoraAdmin

# This configuration value is necessary to initialize the MPTStore library,

# and should not need to be changed.

#

driver.fedora.mpt.db.map = tmap

# This configuration value is necessary to initialize the MPTStore library,

# and should not need to be changed.

#

driver.fedora.mpt.db.prefix = t


#########################################

# Fedora Driver: Advanced Configuration #

#########################################

# driver.fedora.deleted

# This is the name of the RELS-EXT predicate that indicates the state

# of all records within the object.

#

# <p>The 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.</p>

#

#driver.fedora.deleted = info:fedora/fedora-system:def/model#state


Any help would be appreciated.


Prashant

University of South Australia Library

http://people.unisa.edu.au/Prashant.Pandey