通过连接字符串设置 Virtuoso 服务器中的连接超时

通过连接字符串设置 Virtuoso 服务器中的连接超时

我在 Windows 上使用以下配置启动了 Virtuoso 服务(这是配置文件的重要部分):

ResultSetMaxRows            = 10000
MaxQueryCostEstimationTime  = 40000 ; in seconds
MaxQueryExecutionTime       = 60000 ; in seconds
DefaultQuery                = select * where{?x ?y ?z}
DeferInferenceRulesInit     = 0  ; controls inference rules loading

我正在使用该dotNetRDF库对本地服务器进行本地查询。该库将超时设置为 30 秒,但我可以通过在启动对象时发送连接字符串来覆盖默认超时:

VirtuosoManager manager = new VirtuosoManager("Server=localhost;Uid=dba;pwd=dba;Connection Timeout=500");

如果我的查询足够复杂,需要 30 秒以上的时间处理,它仍会在 30 秒时超时......

我的项目使用了一些复杂的查询,因此我需要将超时属性设置得尽可能大。我该如何覆盖该属性?

答案1

Virtuoso ADO.Net Provider DBcommand 类具有命令超时属性,默认值为 30 秒,详见VirtuosoCommand 类文档

这是您遇到的超时(而不是连接超时)。

从修订版 2148 开始,dotNetRDF 库允许根据需要设置此属性值。

相关内容