【发布时间】:2011-05-24 19:15:53
【问题描述】:
我目前在 IIS7 的 Windows 2008 服务器上运行 ruby on rails(ruby 1.8.7、rails 2.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 错误并自动重置连接,我真的很喜欢它。有什么想法吗?
【问题讨论】:
-
不是答案。我不确定您为什么会收到此错误,但是,请尝试使用 ActiveRecord::Base.verify_active_connections! ,它可以帮助我解决 rails 2.3.5 中的 background_job 数据库连接丢失问题。基本上它检查数据库连接并重新连接......希望这可以帮助
标签: ruby-on-rails ruby odbc mongrel