1

質問があります。RDF Triple Store に大きな 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