2014-12-18 6 views
2

Симптом:Как продлить время ожидания activerecord и tinytds?

TinyTds::Error: Adaptive Server connection timed out: EXEC some_stored_procedure

execute_procedure Это медленная хранимая процедура на медленном MSSQL Server через ActiveRecord над tinytds. Если I EXEC хранимой процедуры в SQL Query Analyzer, для завершения требуется 29-30.

Поэтому я добавил:

timeout = 60 

в /etc/freetds.conf и:

read_timeout: 60 
write_timeout: 60 

к database.yml.

Такая же ошибка все еще появляется. Есть ли другие конфиги, которые я пропустил?

p.s. Я сделал измерение , когда ошибка таймаута появляется с таймером после нажатия клавиши возврата, это около 30 секунд. У меня есть ощущение, что 30 секунд не может быть тайм-аутом по умолчанию и задается вопросом, почему ошибка показывает, что время закрытия sql заканчивается ...

ответ

0

Это было довольно долгое время, но кому-то это может понадобиться , Я решил это, пройдя timeout: вариант для создания клиента tiny_tds зависит от git doc, см. Ниже:

client = TinyTds::Client.new username: 'sa', password: 'secret', host: 'mydb.host.net', timeout: 30 
Смежные вопросы