GraphDB存储库被删除后,导入状态将保持不变



GraphDB Free/9.4.1,RDF4J/3.3.1

我正在使用/rest/data/import/server/{repo-id}端点来启动RDF/XML文件的导入。

步骤:

  1. 将SysML.owl放在${graphdb.workbench.importDirectory}目录中。chmod a+r SysML.owl

  2. 创建存储库test1(在Workbench中-使用除RepositoryID:="test1"之外的所有默认值(

  3. curl http://127.0.0.1:7200/rest/data/import/server/test1=>如预期:[{"名称":"SysML.owl","状态":"无"…"时间戳":1606848520821,…]

  4. curl-XPOST--header"内容类型:application/json"--header"Accept:application/json"-d"{"fileNames":[quot;SysML.owl"]}"http://127.0.0.1:7200/rest/data/import/server/test1=>SC==202

  5. 60秒后,curl http://127.0.0.1:7200/rest/data/import/server/test1=>[{"名称":"SysML.owl","状态":"完成","消息":"在7秒内成功导入。","上下文":null,"replaceGraphs":[],"baseURI":"file:/home/steve/graphdb import/SysML.owl"forceSerial":false;类型":"文件"格式":null;数据":null;时间戳":1606848637716,[…删除其他json内容]Repository test1现在有来自SysML.owl的263119(824推断(语句加载

但如果我

  1. 使用http://localhost:7200/repository上的工作台页面删除存储库,等待180秒
  2. curl http://127.0.0.1:7200/rest/data/import/server/test=>与上面的步骤5相同,尽管存储库已经被删除。curl-X GET--header"Accept:application/json"http://localhost:7200/rest/restorages"=>test1未显示
  3. 使用Workbench再次创建存储库—与前面的设置相同。等待60秒。最初有70份陈述
  4. curl http://127.0.0.1:7200/rest/data/import/server/test1=>与以前的使用相同的输出-当我使用以前的存储库实例时"状态":"DONE">相同的时间戳-在我删除、重新创建test1存储库的时间之前

main-2020-12-01.log显示了与存储库测试1、插件注册等有关的INFO消息。没有任何信息表明前一个存储库实例的导入状态延迟的原因。

这是一个令人担忧的问题,因为我希望使用一些状态轮询来确定数据何时加载,这样我的处理就可以继续了。好消息是,我可以再次发出导入服务器文件请求,等待60秒后,263119语句就出现了。但是导入上的时间戳是较早的repo实例的时间戳。它没有通过最新的导入请求重置。

我可能错过了一些清理步骤,希望有人知道是哪一个。

谢谢,-Steve

状态只是供您参考,并不代表存储库中数据的实际存在。您可以通过清除存储库中的所有数据而不重新创建它来实现类似的事情

如果你真的需要依赖这些状态记录,你可以在轮询给定文件并确定它已经完成(或在开始导入之前(后,使用curl:清除该文件的状态

curl -X DELETE http://127.0.0.1:7200/rest/data/import/server/test1/status 
-H 'content-type: application/json' -d '["SysML.owl"]'

请注意,这是一个未记录的API,它可能会在没有通知的情况下更改。

最新更新