如何延长ActiveRecord和TinyTDS的超时时间?

4
症状是:
TinyTds :: Error:自适应服务器连接超时:EXEC一些存储过程
这是通过tinytds在缓慢的MSSQL服务器上执行缓慢存储过程的execute_procedure。如果我在SQL查询分析器中执行存储过程,则需要29到30秒才能完成。
因此,我添加了:
timeout = 60

/etc/freetds.conf 中:
read_timeout: 60
write_timeout: 60

database.yml 文件进行配置。
仍然显示相同的错误。是否还有其他的配置项被忽略了?
顺便说一下,我使用计时器测量了按下回车键后超时错误出现的时间点,大约是30秒。我觉得30秒可能不是 freetds 或者 activerecord 的默认超时时间,并且想知道为什么错误出现的时间点与 SQL 完成的时间相差不远...
1个回答

5

虽然时间已经过去了很长时间,但是可能有人仍然需要这个。我通过按照 git 文档 ,在创建依赖于 tiny_tds 客户端时传递 timeout: 选项来解决这个问题,如下所示:

client = TinyTds::Client.new username: 'sa', password: 'secret', host: 'mydb.host.net', timeout: 30

1
我遇到了同样的问题,并使用上面的解决方案解决了问题...谢谢。 - Jeyavel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接