We have a persistent problem when the OAI provider is building its cache after we have ingested a large amount of data.

 

After a period of time (13 hours was the last instance) of iterating through the Fedora objects and building the cache we get a java.net.SocketException.

 

Any ideas on what we can do to sort this out?

 

After the exception, the transaction is rolled back, and the whole cacheing process starts again, inevitably getting a new exception a number of hours later, ad infinitum.

 

Stack dump is shown below.  This is on the latest 2.1b version of the OAI provider.

 

Steve

 

 

 

WARN 2006-01-19 23:27:17,447 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:535)

            at proai.cache.RecordCache.run(RecordCache.java:599)

Caused by: proai.error.RepositoryException: Error getting next tuple

            at fedora.services.oaiprovider.FedoraRecordIterator.getNext(FedoraRecordIterator.java:140)

            at fedora.services.oaiprovider.FedoraRecordIterator.next(FedoraRecordIterator.java:69)

            at proai.cache.RecordCache.update(RecordCache.java:478)

            ... 1 more

Caused by: org.trippi.TrippiException: IO Error while getting next result

            at org.trippi.io.SparqlTupleIterator.getNext(SparqlTupleIterator.java:86)

            at org.trippi.io.SparqlTupleIterator.next(SparqlTupleIterator.java:59)

            at fedora.services.oaiprovider.FedoraRecordIterator.getNextGroup(FedoraRecordIterator.java:159)

            at fedora.services.oaiprovider.FedoraRecordIterator.getNext(FedoraRecordIterator.java:94)

            ... 3 more

Caused by: java.net.SocketException: Connection reset

            at java.net.SocketInputStream.read(SocketInputStream.java:168)

            at java.net.SocketInputStream.read(SocketInputStream.java:182)

            at java.io.FilterInputStream.read(FilterInputStream.java:66)

            at java.io.PushbackInputStream.read(PushbackInputStream.java:120)

            at org.apache.commons.httpclient.ChunkedInputStream.readCRLF(ChunkedInputStream.java:188)

            at org.apache.commons.httpclient.ChunkedInputStream.nextChunk(ChunkedInputStream.java:203)

            at org.apache.commons.httpclient.ChunkedInputStream.read(ChunkedInputStream.java:160)

            at java.io.FilterInputStream.read(FilterInputStream.java:111)

            at org.apache.commons.httpclient.AutoCloseInputStream.read(AutoCloseInputStream.java:110)

            at fedora.client.HttpInputStream.read(HttpInputStream.java:90)

            at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(StreamDecoder.java:408)

            at sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:450)

            at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:182)

            at java.io.InputStreamReader.read(InputStreamReader.java:167)

            at org.xmlpull.mxp1.MXParser.fillBuf(MXParser.java:2972)

            at org.xmlpull.mxp1.MXParser.more(MXParser.java:3026)

            at org.xmlpull.mxp1.MXParser.parseStartTag(MXParser.java:1739)

            at org.xmlpull.mxp1.MXParser.nextImpl(MXParser.java:1127)

            at org.xmlpull.mxp1.MXParser.next(MXParser.java:1093)

            at org.trippi.io.SparqlTupleIterator.getNext(SparqlTupleIterator.java:77)

            ... 6 more