Назад | Перейти на главную страницу

Установка тайм-аута подключения на сервере Virtuoso через строку подключения

Я запустил службу 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 позволяет задавать это значение свойства по мере необходимости.