Hi there,
>
com.hp.hpl.jena.tdb.sys.CachingTDBMaker.createDatasetGraph(CachingTDBMaker.java:46)
at
org.topbraid.jenax.tdb.TBDatasetGraphMakerTDB.createDatasetGraph(TBDatasetGraphMakerTDB.java:152)
>
What's the full lifecycle of the test?
In your tests, how were you releasing resources after a test has run
when running with TDB 0.8.9? (Assuming GC is not enough). BTW These
implementation classes are likely to be removed as all datasets are now
created and managed by the transaction subsystem.
You seem to be calling directly into implementation classes - it is
better to use the API. But as you are asking for a fresh, in-memory TDB
store each time,
The API calls are:
TDBFactory.createDatasetGraph
TDBFactory.release
but remember "release" is forceful - it assumes you have closed all
transactions (or finished other actions if not used in a transaction)
and will evict the dataset regardless.
Named memory locations are now provided.
Andy
On 27/07/12 20:04, Willie Milnor wrote:
Hi,
We have a number of automated tests which perform various operations on a
graph stored in TDB. When we were using using TDB 0.8.9, we had no memory
issue running the tests. We are now using 0.9.2 and we are getting
OutOfMemory errors while running the same tests and allocating the same
memory (see the stack trace below). Even if we double the heap space size,
we still see the errors. Is there something different we should be doing
with the updated version of the TDB library?
java.lang.OutOfMemoryError: Java heap space
at java.util.HashMap.<init>(Unknown Source)
at java.util.LinkedHashMap.<init>(Unknown Source)
at
org.openjena.atlas.lib.cache.CacheImpl.<init>(CacheImpl.java:45)
at
org.openjena.atlas.lib.cache.CacheLRU.<init>(CacheLRU.java:37)
at
org.openjena.atlas.lib.CacheFactory.createCache(CacheFactory.java:40)
at
org.openjena.atlas.lib.CacheFactory.createCache(CacheFactory.java:31)
at
com.hp.hpl.jena.tdb.nodetable.NodeTableCache.<init>(NodeTableCache.java:65)
at
com.hp.hpl.jena.tdb.nodetable.NodeTableCache.create(NodeTableCache.java:56)
at
com.hp.hpl.jena.tdb.setup.Builder$NodeTableBuilderStd.buildNodeTable(Builder.java:88)
at
com.hp.hpl.jena.tdb.setup.DatasetBuilderStd$NodeTableBuilderRecorder.buildNodeTable(DatasetBuilderStd.java:387)
at
com.hp.hpl.jena.tdb.setup.DatasetBuilderStd.makeNodeTable(DatasetBuilderStd.java:298)
at
com.hp.hpl.jena.tdb.setup.DatasetBuilderStd._build(DatasetBuilderStd.java:165)
at
com.hp.hpl.jena.tdb.setup.DatasetBuilderStd.build(DatasetBuilderStd.java:155)
at
com.hp.hpl.jena.tdb.setup.DatasetBuilderStd.build(DatasetBuilderStd.java:68)
at
com.hp.hpl.jena.tdb.sys.DatasetGraphSetup.createDatasetGraph(DatasetGraphSetup.java:32)
at
com.hp.hpl.jena.tdb.sys.CachingTDBMaker.createDatasetGraph(CachingTDBMaker.java:46)
at
org.topbraid.jenax.tdb.TBDatasetGraphMakerTDB.createDatasetGraph(TBDatasetGraphMakerTDB.java:152)
at
org.topbraid.jenax.tdb.TBDatasetGraphMakerTDB.createDatasetGraphTDB(TBDatasetGraphMakerTDB.java:31)
at
org.topbraid.tdb.TestTDBBufferingGraph.getDelegatingGraph(TestTDBBufferingGraph.java:38)
at
org.topbraid.core.graph.AbstractTestDelegatingGraph.getGraph(AbstractTestDelegatingGraph.java:178)
at
org.topbraid.core.graph.AbstractTestGraph.testBulkUpdate(AbstractTestGraph.java:281)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown
Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown
Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at
org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
Willie Milnor
Sr. Semantic Solutions Developer
TopQuadrant, Inc.
330 John Carlyle Street
Suite 180
Alexandria, VA 22314
703.299.9330
www.topquadrant.com
Cell: 410.971.7788