1

我有一个问题:我写了这篇文章,我说当我在我的 RDF 三重存储中加载大型 RDF 文件时遇到了问题。

如何在 TDB TripleStore 中加载模型

该解决方案有效,但今天它引起了另一个问题。

我的部分代码是:

String file = "C:\\file.nt";
String queryStr = "select * {graph <http://nameFile> { ?s ?p ?o }}";

String directory;
directory = "C:\\tdb";

Dataset dataset = TDBFactory.createDataset(directory);
dataset.begin(ReadWrite.WRITE) ;

Query query = QueryFactory.create(queryStr);

QueryExecution qexec = QueryExecutionFactory.create(query, dataset);
qexec.getContext().set(TDB.symUnionDefaultGraph, true);

ResultSet results = qexec.execSelect();

if (!results.hasNext()) {
    Model model = dataset.getNamedModel("http://nameFile");
    TDBLoader.loadModel(model, file);
}

dataset.commit();
dataset.end();

我收到一个错误

java.lang.OutOfMemoryError:超出 GC 开销限制

为什么?

在前面的代码中,我得到一个

java.lang.OutOfMemoryError:Java 堆空间

而是错误,但我想解决它。此代码在 Web 服务上运行。我正在使用 Netbeans 和 Glassfish 4.0。

我究竟做错了什么?

我还使用了“-XX:-UseGCOverheadLimit”VM 选项,但没有效果。

谢谢和抱歉。

4

0 回答 0