我们正在使用当前 tinyTDS gem 0.6.2 在 rails 3.2.12(ruby 1.9.3)上运行 ruby on rails 应用程序。
我们使用 MS SQL 2012 或 2014 并面临比平常更多的以下错误消息:
TinyTds::Error: Adaptive Server connection timed out: EXEC sp_executesql [...]
数据库自动关闭已关闭。TCP Socket Timeouts 是默认的 Windows 系统。
应用程序服务器在机器 #1(Windows 服务器)上,SQL 服务器在机器 #2(Windows 服务器)上。
当我检查连接(netstat)时,我为大约 20-30 个用户打开了 250 个连接。我运行 perform.exe 来查看 SQL Server 上数据和日志磁盘的空闲时间。
database.yml 有连接pool:32
和reconnect:true
.
在我看来,tinyTDS 似乎失去了连接,并且任何异常都会阻止重新连接。
问题是,如何调试问题以找出问题所在?
更新
我的错,原来的错误信息属于 tinytDS 0.5.x。由于我更新到最新版本,因此我另外或相反地收到以下错误:
ActiveRecord::LostConnection (TinyTds::Error: DBPROCESS is dead or not enabled: BEGIN TRANSACTION):