如何在fuseki 2.0.0中增加查询超时



我正在运行Fuseki服务器2.0.0版

我已经用它的UI管理数据集创建了数据集>添加新数据集。也就是说,我没有用任何ttl配置文件来配置它。

问题是,当我运行一个需要更长时间的复杂查询时,它会给我以下响应-

##  Query cancelled due to timeout during execution   ##
##  ****          Incomplete results           ****   ##

但对于简单且耗时较少的查询,它会给出结果。

我搜索了这个错误,我能找到的只是增加查询超时时间。但是我严重找不到我必须在哪个配置文件。

我试着运行/templates/config tdb文件,但没有成功。

请帮助我理解以下内容:

  1. 这个错误是因为查询超时还是其他原因?

  2. 如果是查询超时,那么我实际上必须在哪个配置文件中写入此配置?

  3. 如果是因为其他原因,那么它可能是什么,如何解决?

提前谢谢。

增加超时的一种方法是更改config.ttl文件

@prefix :        <#> .
@prefix fuseki:  <http://jena.apache.org/fuseki#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix tdb:     <http://jena.hpl.hp.com/2008/tdb#> .
@prefix ja:      <http://jena.hpl.hp.com/2005/11/Assembler#> .
[] rdf:type fuseki:Server ;
   ja:context [ ja:cxtName "arq:queryTimeout" ;  ja:cxtValue "30000" ] .

cxtValue是以毫秒为单位给出的,因此这将使fuseki服务器超时30秒。根据您的需要,您可能需要或不需要上面定义的所有前缀。

然后你需要像这样启动服务器:

/jena-fuseki/fuseki-server -v --config=config.ttl

在Fuseki中,配置文件是RDF格式的。

问题是,使用Fuseki 2.0,"活动"配置可以来自3个不同的地方:

  • 用于服务器范围配置的FUSKI_BASE/config.ttl
  • FUSEKI_BASE/configuration/[datasetName].ttl用于数据集特定配置
  • FUSEKI_BASE/包含TDB文件(RDF数据的数据库)的系统

更有可能的是,您的超时配置位于FUSEKI_BASE/系统数据库中,不便于编辑(实际上我没有办法做到这一点…)。请注意,在Fuseki 2.0中,从UI创建的数据集的所有配置(如您的配置)都存储在Fuseki_BASE/系统中,可能会有一些超时的默认值。使用Fuseki 2.3,从UI创建的数据集的配置以ttl文件的形式存储在Fuseki_BASE/configuration/中,便于编辑。

作为一种变通方法,最好知道每个查询的超时可以通过标头"timeout:"或参数&timeout=。

最新更新