Fuseki 在 5 个请求后阻塞

Fuseki blocks after 5 requests

我的应用程序包含可与 Jena TDB2 和 Fuseki 配合使用的 soap 服务。它工作正常,但我的应用程序在第 5 次请求从 fuseki 获取对象后阻塞。 这是代码

QueryExecution q = QueryExecutionFactory.sparqlService(serviceURI, query);
ResultSet results = q.execSelect();
Model model = ModelFactory.createDefaultModel();
while (resultSet.hasNext()) {
  QuerySolution querySolution = resultSet.next();
  RDFNode object = querySolution.get("?o");
  if (object instanceof Literal) {
    model.add(querySolution.getResource("?s"), model.createProperty(querySolution.getResource("?p").toString()),
        object);
  }
  if (object instanceof Resource) {
    if (querySolution.getResource("?p").getLocalName().equals("type")) {
      model.add(querySolution.getResource("?s"), model.createProperty(querySolution.getResource("?p").toString()),
          object);
    } else {
      model.add(querySolution.getResource("?s"), model.createProperty(querySolution.getResource("?p").toString()),
          model.createProperty("#" + querySolution.getResource("?o").getLocalName()));
    }
  }

那么什么会导致这个问题呢?我认为这是一些配置,但我没有找到一些有用的评论。

代码没有关闭QueryExecution

对于外部资源(网络连接)最好是使用Java "try-with-resource"

try(QueryExecution q = ...) { code }

这加快了 OS 资源的重用。