Hi Community,
I am developing an application that has multiple threads, each of which will create three memory-based database, and perform query, reasoning, and reasoning explanation. However, it runs well for about 2 mins, then the interrupted exception occurred. The below is the log:
com.complexible.stardog.StardogException: java.io.IOException: java.lang.InterruptedException
at com.complexible.stardog.protocols.client.SPECClientUtil.toStardogException(SPECClientUtil.
at com.complexible.stardog.protocols.client.SPECClientUtil.toStardogException(SPECClientUtil.
at com.complexible.stardog.api.impl.SPECSelectQuery.execute(SPECSelectQuery.java:52)
at com.complexible.stardog.api.impl.SPECSelectQuery.execute(SPECSelectQuery.java:31)
at app.utils.Stardog.query(Stardog.java:211)
at app.utils.Stardog.lambda$null$2(Stardog.java:229)
at java.util.Iterator.forEachRemaining(Iterator.java:116)
at app.utils.Stardog.lambda$null$3(Stardog.java:226)
at java.util.ArrayList.forEach(ArrayList.java:1249)
at app.utils.Stardog.lambda$explain$4(Stardog.java:225)
at java.lang.Iterable.forEach(Iterable.java:75)
at app.utils.Stardog.explain(Stardog.java:224)
at app.core.Window.explain(Window.java:166)
at app.core.Window.query(Window.java:105)
at app.core.Window.report(Window.java:77)
at app.window.LandmarkLogicalWindow.consume(LandmarkLogicalWindow.java:40)
at app.window.LandmarkLogicalWindow.filter(LandmarkLogicalWindow.java:62)
at app.window.LandmarkLogicalWindow.consume(LandmarkLogicalWindow.java:27)
at app.core.RDFStream.constantMode(RDFStream.java:100)
at app.core.RDFStream.stream(RDFStream.java:65)
at app.core.Window.process(Window.java:68)
at app.core.SIGenBench.run(SIGenBench.java:7)
at app.Launcher$1.run(Launcher.java:33)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:748)
Caused by: com.complexible.common.protocols.client.ClientException: java.io.IOException: java.lang.In
at com.complexible.stardog.protocols.http.client.HttpClientImpl.select(HttpClientImpl.java:34
at com.complexible.stardog.protocols.http.client.HttpClientImpl.select(HttpClientImpl.java:99
at com.complexible.stardog.api.impl.SPECSelectQuery.execute(SPECSelectQuery.java:45)
... 23 more
Caused by: java.io.UncheckedIOException: java.io.IOException: java.lang.InterruptedException
at com.complexible.common.rdf.query.IOBindingSetIterator.computeNext(IOBindingSetIterator.jav
at com.complexible.common.rdf.query.IOBindingSetIterator.computeNext(IOBindingSetIterator.jav
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.complexible.stardog.protocols.http.client.HttpClientImpl.select(HttpClientImpl.java:32
... 25 more
Caused by: java.io.IOException: java.lang.InterruptedException
... 30 more
Caused by: java.lang.InterruptedException
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireInterruptibly(AbstractQueuedS
at java.util.concurrent.locks.ReentrantLock.lockInterruptibly(ReentrantLock.java:335)
at java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:400)
at com.complexible.common.rdf.query.IOBindingSetIterator.computeNext(IOBindingSetIterator.jav
... 29 more
I suspect this is because each running thread performs database creation, querying, reasoning, explaining so fast that stardog cannot keep up with? Not really sure, any clues from you ?
Thank you and appreciate your time!
Robert.