GraphDB RDF4J API - Сбой при запуске большого обновления SPARQL в параметре запроса на обновление
Я пытаюсь заменить большое количество троек в моем репозитории GraphDB в рамках интеграции с отдельной системой.
Процесс работает следующим образом;
- Извлекайте данные из внешнего источника данных, используя там Rest API
- Преврати эти данные в тройной формат, который я могу использовать
Создайте следующий формат для каждого предмета, чтобы удалить существующие тройки для этого предмета, а затем вставьте новый контент;
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 (ошибка или нет).
Кто-нибудь сталкивался с этой проблемой раньше?
Спасибо Джон