I was using the built-in OAI provider.
Now I'm trying to use the PROAI provider but I've some problems, I've
ERRORs in Tomcat:
Jan 15 17:07:03 domU-12-31-38-00-A4-B1 jsvc.exec[30690]: Jan 15, 2009
5:07:03 PM org.apache.catalina.startup.Catalina start INFO: Server startup
in 30027 ms
Jan 15 17:07:07 domU-12-31-38-00-A4-B1 jsvc.exec[30690]: ERROR 2009-01-15
17:07:07.357 [http-8180-Processor25] ([RISearchServlet]) Servlet.service()
for servlet RISearchServlet threw exception
org.mulgara.query.QueryException: Unsupported XSD predicate: -1 ^Iat
org.mulgara.resolver.xsd.XSDResolver.resolve(XSDResolver.java:285) ^Iat
org.mulgara.resolver.InternalResolver.resolve(InternalResolver.java:180)
^Iat
org.mulgara.resolver.DatabaseOperationContext.resolve(DatabaseOperationContext.java:645)
^Iat
org.mulgara.resolver.LocalQueryResolver.resolve(LocalQueryResolver.java:187)
^Iat
org.mulgara.resolver.DefaultConstraintHandlers$3.resolve(DefaultConstraintHandlers.java:131)
^Iat
org.mulgara.resolver.ConstraintOperations.resolveModelExpression(ConstraintOperations.java:160)
^Iat
org.mulgara.resolver.DefaultConstraintHandlers$10.resolve(DefaultConstraintHandlers.java:227)
^Iat
org.mulgara.resolver.ConstraintOperations.resolveConstraintExpression(ConstraintOperations.java:187)
^Iat org.mulgara.resolver.LocalQueryResolver.resolveConst
Jan 15 17:07:07 domU-12-31-38-00-A4-B1 jsvc.exec[30690]: at
org.mulgara.resolver.DefaultConstraintHandlers$5.resolve(DefaultConstraintHandlers.java:162)
^Iat
org.mulgara.resolver.ConstraintOperations.resolveConstraintExpression(ConstraintOperations.java:187)
^Iat
org.mulgara.resolver.LocalQueryResolver.resolveE(LocalQueryResolver.java:269)
^Iat
org.mulgara.resolver.DatabaseOperationContext.doQuery(DatabaseOperationContext.java:786)
^Iat org.mulgara.resolver.QueryOperation.execute(QueryOperation.java:139)
^Iat
org.mulgara.resolver.MulgaraInternalTransaction.execute(MulgaraInternalTransaction.java:623)
^Iat org.mulgara.resolver.DatabaseSession.execute(DatabaseSession.java:751)
^Iat org.mulgara.resolver.DatabaseSession.query(DatabaseSession.java:464)
^Iat org.trippi.impl.mulgara.MulgaraSession.query(MulgaraSession.java:129)
^Iat
org.trippi.impl.base.ConcurrentTriplestoreReader.findTuples(ConcurrentTriplestoreReader.java:79)
^Iat
fedora.server.resourceIndex.ResourceIndexImpl.findTuples(ResourceIndexImpl.java:280)
^Iat fedora.server.
Jan 15 17:07:07 domU-12-31-38-00-A4-B1 jsvc.exec[30690]:
sourceIndexModule.java:297) ^Iat
org.trippi.server.TrippiServer.find(TrippiServer.java:119) ^Iat
org.trippi.server.http.TrippiServlet.doFind(TrippiServlet.java:512) ^Iat
org.trippi.server.http.TrippiServlet.doGet(TrippiServlet.java:377) ^Iat
fedora.server.access.RISearchServlet.doGet(RISearchServlet.java:99) ^Iat
org.trippi.server.http.TrippiServlet.doGet(TrippiServlet.java:269) ^Iat
javax.servlet.http.HttpServlet.service(HttpServlet.java:689) ^Iat
javax.servlet.http.HttpServlet.service(HttpServlet.java:802) ^Iat
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
^Iat
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
^Iat
fedora.server.security.servletfilters.FilterSetup.doFilter(FilterSetup.java:235)
^Iat
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
^Iat
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.j
Jan 15 17:07:07 domU-12-31-38-00-A4-B1 jsvc.exec[30690]:
rs.FilterSetup.doFilter(FilterSetup.java:235) ^Iat
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
^Iat
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
^Iat
fedora.server.security.servletfilters.FilterSetup.doFilter(FilterSetup.java:235)
^Iat
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
^Iat
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
^Iat
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
^Iat
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
^Iat
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:525)
^Iat
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
^Iat
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
^Iat org.apache.catalin
Jan 15 17:07:07 domU-12-31-38-00-A4-B1 jsvc.exec[30690]: eValve.java:108)
^Iat
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
^Iat
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
^Iat
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
^Iat
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
^Iat
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
^Iat
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
^Iat java.lang.Thread.run(Thread.java:619) Deleted canceled file:
/usr/local/fedora/proai/cache/2009/01/15/17/07/06.902.xml
In MySQL I've a ROLLBACK, this query shows nothing "SELECT setSpec, xmlPath
FROM rcSet"
50 Query SET autocommit=0
50 Query UPDATE rcAdmin SET identifyPath =
'2009/01/15/17/08/14.829.xml'
50 Query UPDATE rcAdmin SET latestDate = 1232039294000
50 Query SELECT formatKey, namespaceURI, schemaLocation
FROM rcFormat WHERE mdPrefix = 'oai_dc'
50 Query INSERT INTO rcFormat (mdPrefix, namespaceURI,
schemaLocation) VALUES ('oai_dc', '
http://www.openarchives.org/OAI/2.0/oai_dc/', '
http://www.openarchives.org/OAI/2.0/oai_dc.xsd')
50 Query SELECT formatKey, mdPrefix, namespaceURI,
schemaLocation FROM rcFormat
52 Query SELECT path FROM objectPaths WHERE
token='demo:SetPrime'
50 Query SELECT setKey FROM rcSet WHERE setSpec = 'prime'
50 Query INSERT INTO rcSet (setSpec, xmlPath) VALUES
('prime', '2009/01/15/17/08/15.519.xml')
52 Query SELECT path FROM objectPaths WHERE
token='demo:SetAboveTwoEven'
50 Query SELECT setKey FROM rcSet WHERE setSpec =
'abovetwo:even'
50 Query INSERT INTO rcSet (setSpec, xmlPath) VALUES
('abovetwo:even', '2009/01/15/17/08/15.609.xml')
50 Query SELECT setKey FROM rcSet WHERE setSpec =
'abovetwo:odd'
50 Query INSERT INTO rcSet (setSpec, xmlPath) VALUES
('abovetwo:odd', '2009/01/15/17/08/15.729.xml')
52 Query SELECT path FROM objectPaths WHERE
token='demo:SetAboveTwo'
50 Query SELECT setKey FROM rcSet WHERE setSpec =
'abovetwo'
50 Query INSERT INTO rcSet (setSpec, xmlPath) VALUES
('abovetwo', '2009/01/15/17/08/15.739.xml')
50 Query SELECT setSpec, xmlPath FROM rcSet
50 Query rollback
50 Query SET autocommit=1
And in PROAI I've more INFO:
INFO Thread-1 proai.cache.RecordCache - Rolling back aborted update
DEBUG Thread-1 proai.cache.RecordCache - Releasing connection and filesystem
write lock.
INFO Thread-1 proai.cache.RecordCache - Update cycle complete.
WARN Thread-1 proai.cache.RecordCache - Unable to update record cache. Will
try again in 60 seconds.
proai.error.ServerException: Error while updating
at proai.cache.RecordCache.update(RecordCache.java:555)
at proai.cache.RecordCache.run(RecordCache.java:627)
Caused by: proai.error.RepositoryException: Error getting tuples from
Fedora: Request failed [500 Internal Server Error]
at
fedora.services.oaiprovider.ITQLQueryFactory.getCSVResults(ITQLQueryFactory.java:273)
at
fedora.services.oaiprovider.ITQLQueryFactory.listRecords(ITQLQueryFactory.java:110)
at
fedora.services.oaiprovider.FedoraOAIDriver.listRecords(FedoraOAIDriver.java:146)
at proai.cache.RecordCache.update(RecordCache.java:492)
... 1 more
Caused by: java.io.IOException: Request failed [500 Internal Server Error]
at fedora.client.FedoraClient.get(FedoraClient.java:225)
at fedora.client.FedoraClient.get(FedoraClient.java:173)
at fedora.client.FedoraClient.getTuples(FedoraClient.java:599)
at
fedora.services.oaiprovider.ITQLQueryFactory.getCSVResults(ITQLQueryFactory.java:266)
... 4 more
And I don't now what to do, I have the demo objects ingested (proai and
fedora), I can do a risearch, I can do a oaiprovider/?verb=ListSets (shows
an XML), but a oaiprovider/?verb=Identify shows an error 500.
I too can get
http://localhost:8180/fedora/get/demo:MyRepository/Identify.xml
The cache XML file does not exist in the directory.
I have nothing in al the tables rcXXXX, all from PROAI.
Any idea? Thanks, here is my proai.properties:
#
# Proai Configuration
# ================================
#######################
# Required Properties #
#######################
#APUERTA
proai.validateUpdates = false
proai.sessionBaseDir = /usr/local/fedora/proai/session
proai.secondsBetweenRequests = 300
proai.incompleteRecordListSize = 2000
proai.incompleteSetListSize = 2000
proai.incompleteIdentifierListSize = 2000
# [proai.readLockWait]
# The number of milliseconds to wait for a read lock on the cache
# before giving up. A higher value means that OAI harvesters won't
# have to deal with "Service Unavailable" requests as often, whereas
# a lower value will result in quicker response.
proai.readLockWait = 5000
# [proai.writeLockWait]
# The number of milliseconds to wait for a write lock on the cache
# before giving up. If this amount of time passes while waiting
# to commit a change to the cache, the update will be canceled and
# attempted again after proai.cache.RecordCache.pollSeconds
proai.writeLockWait = 60000
# [proai.cacheBaseDir]
# The directory where cache files should be stored. This will be created
# if it doesn't exist.
#APUERTA
#proai.cacheBaseDir = /tmp/proai/cache
proai.cacheBaseDir = /usr/local/fedora/proai/cache
# [proai.driverClassName]
# The class name of proai.driver.OAIDriver implementation. This should
be
# in the classpath.
proai.driverClassName = fedora.services.oaiprovider.FedoraOAIDriver
# [proai.driverPollSeconds]
# How often to poll the driver for updates.
proai.driverPollSeconds = 60
# [proai.db.url]
# The JDBC connection URL for the database that will be used by the
cache.
# [proai.db.driverClassName]
# The class name of the JDBC driver appropriate for use with the
# connection url. This class should be in the classpath.
# [proai.db.username]
# The database user. This user should already exist in the database
# and must have permission to create, modify, and query tables.
# [proai.db.password]
# The password for the database user.
# MySQL
proai.db.url =
jdbc:mysql://localhost/fedora31?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
proai.db.driverClassName = com.mysql.jdbc.Driver
# McKoi
#proai.db.url =
jdbc:mckoi:local://build/test/mckoi/mckoi.conf?create_or_boot=true
#proai.db.driverClassName = com.mckoi.JDBCDriver
proai.db.username = *******
proai.db.password = *******
# [JDBC Driver-specific DDL Converters]
# A ddlConverter class is used to generate the commands necessary for
# creating the tables required Proai's record cache. 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
#################################
# OAIDriver-Specific Properties #
#################################
driver.fedora.baseURL = http://localhost:8180/fedora/
driver.fedora.user = ********
driver.fedora.pass = *********
# [driver.fedora.queryConnectionTimeout]
# 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
# [driver.fedora.querySocketTimeout]
# When querying the resource index, the maximum number of seconds of
# socket inactivity to allow before giving up.
driver.fedora.querySocketTimeout = 600
# [driver.fedora.disseminationConnectionTimeout]
# 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
# [driver.fedora.disseminationSocketTimeout]
# When getting xml data from Fedora, the maximum number of seconds of
# socket inactivity to allow before giving up.
driver.fedora.disseminationSocketTimeout = 120
driver.fedora.queryFactory = fedora.services.oaiprovider.ITQLQueryFactory
driver.fedora.identify =
http://localhost:8180/fedora/get/demo:MyRepository/Identify.xml
# space-separated list of metadata formats
# APuerta
#driver.fedora.md.formats = oai_dc test_format formatX formatY
driver.fedora.md.formats = oai_dc
driver.fedora.md.format.oai_dc.loc =
http://www.openarchives.org/OAI/2.0/oai_dc.xsd
driver.fedora.md.format.oai_dc.uri =
http://www.openarchives.org/OAI/2.0/oai_dc/
driver.fedora.md.format.oai_dc.dissType = info:fedora/*/oai_dc
# optional
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
driver.fedora.md.format.test_format.loc = http://example.org/testFormat.xsd
driver.fedora.md.format.test_format.uri = http://example.org/testFormat/
driver.fedora.md.format.test_format.dissType = info:fedora/*/test_format
driver.fedora.md.format.formatX.loc = http://example.org/formatX.xsd
driver.fedora.md.format.formatX.uri = http://example.org/formatX/
driver.fedora.md.format.formatX.dissType =
info:fedora/*/demo:XYFormatsBDef/getMetadata?format=x
driver.fedora.md.format.formatY.loc = http://example.org/formatY.xsd
driver.fedora.md.format.formatY.uri = http://example.org/formatY/
driver.fedora.md.format.formatY.dissType =
info:fedora/*/demo:XYFormatsBDef/getMetadata?format=y
driver.fedora.itemID = http://www.openarchives.org/OAI/2.0/itemID
driver.fedora.setSpec = http://www.openarchives.org/OAI/2.0/setSpec
driver.fedora.setSpec.name = http://www.openarchives.org/OAI/2.0/setName
driver.fedora.setSpec.desc.dissType = info:fedora/*/SetInfo.xml
driver.fedora.itemSetSpecPath = $item <fedora-rels-ext:isMemberOf> $set $set
<http://www.openarchives.org/OAI/2.0/setSpec> $setSpec
# optional oai-deleted property
#driver.fedora.deleted = info:fedora/fedora-system:def/model#state
# optional volatile property
#driver.fedora.volatile = true
#################################
# Advanced, Optional Properties #
#################################
# [Advanced connection pool configuration]
# These properties map to those defined by the Apache commons-DBCP
project,
# documented at
http://jakarta.apache.org/commons/dbcp/configuration.html
#
# proai.db.defaultAutoCommit =
# proai.db.defaultReadOnly =
# proai.db.defaultTransactionIsolation =
# proai.db.defaultCatalog =
# proai.db.maxActive =
# proai.db.maxIdle =
# proai.db.minIdle =
# proai.db.initialSize =
# proai.db.maxWait =
# proai.db.testOnBorrow =
# proai.db.testOnReturn =
# proai.db.timeBetweenEvictionRunsMillis =
# proai.db.numTestsPerEvictionRun =
# proai.db.minEvictableIdleTimeMillis =
# proai.db.testWhileIdle =
# proai.db.validationQuery =
# proai.db.accessToUnderlyingConnectionAllowed =
# proai.db.removeAbandoned =
# proai.db.removeAbandonedTimeout =
# proai.db.logAbandoned =
# proai.db.poolPreparedStatements =
# proai.db.maxOpenPreparedStatements =
#
# [Connection-specific properties]
# These properties can be anything you want. Two examples follow.
# The name after "db.connection." should be the name of any
# connection-specific property.
#
# proai.db.connection.anyConnectionProperty =
# proai.db.connection.anyConnectionProperty2 =
2009/1/13 Ozakca, Muzaffer <[email protected]>
> Are you using the Proai based provider or the built-in OAI provider? If
> you're using the Proai based one, then you can configure a relationship from
> an object to a set object and all the objects that have that relationship in
> their RELS-EXT will be part of that set. The service is documented on this
> page:
>
>
> http://fedora-commons.org/confluence/display/FCSVCS/OAI+Provider+Service+1.2
>
>
>
> I don't have any experience with the built-in one and it might not support
> configured sets (although I wouldn't really know). You should be able to
> find more info on the Fedora-commons wiki.
>
>
>
> Muzaffer Ozakca
>
>
>
>
>
> *From:* Alberto Puerta Sales [mailto:[email protected]]
> *Sent:* Tuesday, January 13, 2009 3:27 AM
> *To:* [email protected]
> *Subject:* [Fedora-commons-users] Fedora and OAI
>
>
>
>
> Hi all..
> I'm testing OAI in Fedora and I've done this test:
> http://re.cs.uct.ac.za/
>
> But I'm getting two errors:
>
> (4) Testing : ListSets
>
> URL :
> https://ec2-67-202-41-6.compute-1.amazonaws.com:8443/fedora/oai?verb=ListSets
>
> ------ Response from Xerces Schema Validation ------
>
> [Error] re.HDuebm:8:14: cvc-complex-type.2.4.b: The content of element
> 'ListSets' is not complete. One of
> '{"http://www.openarchives.org/OAI/2.0/":set}' is expected.
>
>
>
> /tmp/re.HDuebm: 642;16;0 ms (4 elems, 4 attrs, 0 spaces, 96 chars)
>
> ------- End of Xerces Schema Validation Report -------
>
> ------ Start of XML 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>2009-01-12T14:13:48Z</responseDate>
>
> <request
> verb="ListSets">https://ec2-67-202-41-6.compute-1.amazonaws.com:8443/fedora/oai</request>
>
>
>
> <ListSets>
>
> </ListSets>
>
> </OAI-PMH>
>
>
> ------- End of XML Response -------
>
> Test Result : FAIL!
>
> **** [ERROR] XML Schema validation failed
>
>
>
>
> (17) Testing : ListIdentifiers (mdp, mdp)
>
> URL :
> https://ec2-67-202-41-6.compute-1.amazonaws.com:8443/fedora/oai?verb=ListIdentifiers&metadataPrefix=oai_dc&metadataPrefix=oai_dc
>
>
>
> ------ Start of XML 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>2009-01-12T14:17:01Z</responseDate>
>
> <request verb="ListIdentifiers"
> metadataPrefix="oai_dc">https://ec2-67-202-41-6.compute-1.amazonaws.com:8443/fedora/oai</request>
>
>
>
> <ListIdentifiers>
>
> <header>
>
> <identifier>oai:example.org:fedora-system:FedoraObject-3.0</identifier>
>
> <datestamp>2008-07-02T05:09:44Z</datestamp>
>
> </header>
>
>
>
> <header>
>
> <identifier>oai:example.org:Work:1</identifier>
>
> <datestamp>2009-01-07T11:45:17Z</datestamp>
>
> </header>
>
> <header>
>
> <identifier>oai:example.org:Work:25</identifier>
>
>
>
> <datestamp>2009-01-07T11:45:38Z</datestamp>
>
> </header>
>
> <header>
>
> <identifier>oai:example.org:fedora-system:ContentModel-3.0</identifier>
>
> <datestamp>2008-07-02T05:09:44Z</datestamp>
>
>
>
> </header>
>
> <header>
>
>
> <identifier>oai:example.org:fedora-system:ServiceDefinition-3.0</identifier>
>
> <datestamp>2008-07-02T05:09:44Z</datestamp>
>
> </header>
>
>
>
> <header>
>
>
> <identifier>oai:example.org:fedora-system:ServiceDeployment-3.0</identifier>
>
> <datestamp>2008-07-02T05:09:44Z</datestamp>
>
> </header>
>
> <header>
>
>
>
> <identifier>oai:example.org:OAI:1</identifier>
>
> <datestamp>2009-01-08T12:42:45Z</datestamp>
>
> </header>
>
> <header>
>
> <identifier>oai:example.org:OAI:2</identifier>
>
>
>
> <datestamp>2009-01-08T13:49:03Z</datestamp>
>
> </header>
>
> </ListIdentifiers>
>
> </OAI-PMH>
>
>
> ------- End of XML Response -------
>
> Test Result : FAIL!
>
> **** [ERROR] Error tag expected but not found : badArgument
>
>
>
>
> In the first error I don't have defined any ListSet, but how can I set
> ListSets in Fedora if Fedora only admits METS and FOXML? I need information.
>
> The second error is a Fedora development error, I think the test I've done
> is quite important and I don't know how can Fedora fail in that point
> ¿somebody knows something about that? I can change OAIProviderServlet in
> Fedora if it is necessary.
> Thanks in advice.
>
>
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by:
> SourcForge Community
> SourceForge wants to tell your story.
> http://p.sf.net/sfu/sf-spreadtheword
> _______________________________________________
> Fedora-commons-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/fedora-commons-users
>
>
------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Fedora-commons-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/fedora-commons-users