GraphDB RDF4J API - Сбой при запуске большого обновления SPARQL в параметре запроса на обновление

Я пытаюсь заменить большое количество троек в моем репозитории GraphDB в рамках интеграции с отдельной системой.

Процесс работает следующим образом;

  1. Извлекайте данные из внешнего источника данных, используя там Rest API
  2. Преврати эти данные в тройной формат, который я могу использовать
  3. Создайте следующий формат для каждого предмета, чтобы удалить существующие тройки для этого предмета, а затем вставьте новый контент;

    DELETE { <x:test> ?p ?o } WHERE { <x:test> ?p ?o . VALUES (?p) { (<y:name>) (<y:description>) } }; INSERT DATA { <x:test> <y:name> "New Name" . <x:test> <y:description> "New Description" . }

Казалось, самое разумное решение было разделить это на 2 запроса,

УДАЛЯТЬ

Первым требованием будет удаление всех троек по всем предметам за один раз. Это будет включать в себя отправку всех DELETE блоки для всех предметов вместе POST /repositories/{repositoryID}/statement используя параметр запроса на обновление, например

DELETE {
   <x:test> ?p ?o
}
WHERE {
   <x:test> ?p ?o . 
        VALUES (?p) {
          (<y:name>) 
          (<y:description>)
        } 
};
DELETE {
   <x:test2> ?p ?o
}
WHERE {
   <x:test2> ?p ?o . 
        VALUES (?p) {
          (<y:name>) 
          (<y:description>)
        } 
};

ВСТАВИТЬ

Вторым запросом будет вставка новых данных с использованием тела POST /repositories/{repositoryID}/statement например

<x:test> <y:name> "New Name" .
<x:test> <y:description> "New Description" .
<x:test2> <y:name> "New Name 2" .
<x:test2> <y:description> "New Description 2" .

Теперь INSERT работает отлично, однако DELETE кажется, не работает после прохождения определенного числа объектов, обрабатываемых - java.net.SocketException: Connection reset,

  • Я не вижу ничего в POST /repositories/{repositoryID}/statement документация, указывающая на ограничение размера update query parameter

  • Попытки, которые успешно обработаны, появляются в журналах GraphDB, однако эти неудачные попытки, которые приводят к тому, что exception не отображаются ни в каких журналах GraphDB (ошибка или нет).

Кто-нибудь сталкивался с этой проблемой раньше?

Спасибо Джон

0 ответов

Другие вопросы по тегам