Фусеки блоки после 5 запросов - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть приложение с сервисами мыла, которое работает с Jena TDB2 и Fuseki. Это работает нормально, но мое приложение блокирует после 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()));
    }
  }

Так, что может вызвать эту проблему? Я думал, что это какая-то конфигурация, но я не нашел полезных комментариев по этому поводу.

1 Ответ

0 голосов
/ 02 ноября 2018

Код не закрывает QueryExecution.

Для внешних ресурсов (сетевых подключений) лучше всего использовать Java "try-with-resource"

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

Это ускоряет повторное использование ресурсов ОС.

...