Я запустил службу Virtuoso в Windows со следующими конфигурациями (это важная часть файла конфигурации):
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 секунд ...
В моем проекте используются несколько сложных запросов, поэтому мне нужно как можно большее значение свойства timeout. Как я могу переопределить это свойство?
Класс DBcommand Virtuoso ADO.Net Provider имеет CommandTimeout свойство со значением по умолчанию 30 секунд, как подробно описано в Документация класса VirtuosoCommand.
Это время ожидания, которое вы используете (а не время ожидания соединения).
Начиная с версии 2148, библиотека dotNetRDF позволяет задавать это значение свойства по мере необходимости.