TinyTds错误:Adaptive Server连接超时

我们在rails 3.2.12(ruby 1.9.3)上使用当前tinyTDS gem 0.6.2在rails应用程序上运行ruby。

我们使用MS SQL 2012或2014,面对更常见的以下错误消息:

TinyTds::Error: Adaptive Server connection timed out: EXEC sp_executesql [...] 

数据库AUTOCLOSE已关闭。 TCP套接字超时是默认的Windows系统。

应用程序服务器位于计算机#1(Windows服务器)上,SQL服务器位于计算机#2(Windows服务器)上。

当我检查连接(netstat)时,我想为大约20-30个用户打开250个连接。 我运行perform.exe来查看SQL服务器上的数据和日志磁盘的空闲时间。

database.yml有连接pool:32reconnect:true

对我而言,看起来tinyTDS失去连接,任何exception都无法重新连接。

问题是,如何调试问题以找出问题所在?

UPDATE

我的错误,原始错误消息属于tinytDS 0.5.x. 自从我更新到最新版本后,我得到以下错误:

 ActiveRecord::LostConnection (TinyTds::Error: DBPROCESS is dead or not enabled: BEGIN TRANSACTION): 

首先,该池大小似乎过多。 你使用了大量的线程吗? 如果没有,则每个应用请求/响应仅使用一个连接。 看起来这个价值很高。

二,什么SQL超时? 您是否发现某些SQL比其他SQL慢? 如果是这样,那么你有两个选择。 第一种方法是使用索引等标准实践来调整数据库。第二种方法是增加database.yml中的“timeout”选项。 默认超时为5000,即5秒。 你试过把它设置为10000吗? 我想我问的是你如何确定这是一个“连接”超时与“等待”超时?