首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RDF4J只调度针对三层存储的5个查询

RDF4J只调度针对三层存储的5个查询
EN

Stack Overflow用户
提问于 2017-05-01 19:51:15
回答 1查看 167关注 0票数 0

我在处理语义数据技术方面还有一些问题:我有一个GraphDB Triplestor在我的机器上本地运行,试图使用RDF4J和Java对它调度一些SPARQL查询。从下面的代码中可以看到,将连续启动10个查询。然而,只有5 get启动(我看到0-4在控制台中)。问题似乎是,出于某种原因,我仅限于5个开放的HTTP连接。repConn.close()的任何调用似乎都不会改变任何事情。有人有什么想法吗?

代码语言:javascript
复制
import org.eclipse.rdf4j.query.QueryLanguage;
import org.eclipse.rdf4j.query.TupleQuery;
import org.eclipse.rdf4j.query.TupleQueryResult;
import org.eclipse.rdf4j.repository.RepositoryConnection;
import org.eclipse.rdf4j.repository.http.HTTPRepository;

public class testmain {

public HTTPRepository rep;
public RepositoryConnection repConn;

public static void main(String[] args) {

    testmain test = new testmain();

    test.rep = new HTTPRepository("http://localhost:7200/repositories/test01");

    //test.repConn = test.rep.getConnection();

    for (int i = 0; i < 10; i++) {

        test.repConn = test.rep.getConnection();
        String queryString = "select ?archiveID where { ?video <http://www.some.ns/ontology##hasArchiveID> ?archiveID .}";

        try {
            TupleQuery tupleQuery = test.repConn.prepareTupleQuery(QueryLanguage.SPARQL, queryString);
            TupleQueryResult queryResult = tupleQuery.evaluate();
        } finally {
            test.repConn.close();
        }

        System.out.println(i);

    }
}

}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-02 12:44:11

您还需要关闭查询结果,否则repCon.close什么都不做。

代码语言:javascript
复制
try {
        TupleQuery tupleQuery = test.repConn.prepareTupleQuery(QueryLanguage.SPARQL, queryString);
        TupleQueryResult queryResult = tupleQuery.evaluate();
        queryResult.close(); // this should solve your issue

    }

或者更好地使用新的rdf4j流API(QueryResults.stream(gqr))。为你关闭一切。http://docs.rdf4j.org/migration/ (2.6.5点)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43725496

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档