我在 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 库允许根据需要设置此属性值。