Ruby on rails Ruby Rails Mongrel服务器ODBC连接重置

Ruby on rails Ruby Rails Mongrel服务器ODBC连接重置,ruby-on-rails,ruby,odbc,mongrel,Ruby On Rails,Ruby,Odbc,Mongrel,我目前正在IIS7的Windows2008服务器上运行RubyonRails(Ruby1.8.7,Rails2.3.8)。我使用mongrel rails运行实例,然后将实例添加到IIS7中要使用的服务器场中 当应用程序运行时,与数据库服务器的连接以某种方式断开,rails应用程序似乎仍在尝试使用ODBC连接,我得到以下错误 ActiveRecord::StatementInvalid (ODBC::Error: S0002 (208) [Microsoft][ODBC SQL Server D

我目前正在IIS7的Windows2008服务器上运行RubyonRails(Ruby1.8.7,Rails2.3.8)。我使用mongrel rails运行实例,然后将实例添加到IIS7中要使用的服务器场中

当应用程序运行时,与数据库服务器的连接以某种方式断开,rails应用程序似乎仍在尝试使用ODBC连接,我得到以下错误

ActiveRecord::StatementInvalid (ODBC::Error: S0002 (208) [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid object name 'sessions_table'.: SELECT TOP 1 * FROM [sessions_table] WHERE ([sessions_table].[session_id] = 'e6a7e7bc3b72edf2662c2b97793694d2') ):
  vendor/gems/activerecord-sqlserver-adapter-2.3.10/lib/active_record/connection_adapters/sqlserver_adapter.rb:946:in `raw_select'
  vendor/gems/activerecord-sqlserver-adapter-2.3.10/lib/active_record/connection_adapters/sqlserver_adapter.rb:923:in `select'
  app/controllers/application_controller.rb:107:in `set_locale'
  haml (3.0.17) [v] lib/sass/plugin/rack.rb:41:in `call'
  haml (3.0.17) [v] lib/sass/plugin/rack.rb:41:in `call'
  config/initializers/mongrel.rb:62:in `dispatch_cgi'

当我重新启动mongrel服务时,这个错误消失了,但是,如果应用程序识别出odbc错误并自动重置连接,我真的希望它消失。有什么想法吗?

您能捕获此异常并尝试一下吗

一旦发生重置(RST?),适配器实现现在可能具有无效连接或连接池。我想知道是否会重置连接/连接池并允许客户端正常继续。或者至少在放弃之前多尝试几次

嗯,


Z

如果确定表名正确,请检查在模型中定义表名的方式。定义应包含数据库名称和架构名称(通常为“dbo”)

对于Rails 2.x.x,它将是:

set_table_name "database_name.dbo.table_name"
对于大于等于3.x.x的轨道:

self.table_name = "database_name.dbo.table_name"

不是答案。我不知道为什么会出现此错误,但是,请尝试使用ActiveRecord::Base.verify\u active\u connections,它可以帮助我解决rails 2.3.5中的后台作业数据库连接丢失问题。基本检查数据库连接并重新连接。。。希望这能有所帮助