2010-12-13 13 views
4

私は現在、IIS7のWindows 2008サーバー上でruby on ruby​​(ruby 1.8.7、rails 2.3.8)を実行しています。私は、インスタンスを実行し、使用するIIS7のサーバーファームにインスタンスを追加するためにmongrelレールを使用しています。データベース・サーバーへの接続がダウン何とかRuby Rails Mongrel Server ODBC接続のリセット

アプリケーションが実行されると、レールのアプリはまだ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エラーを認識して接続を自動的にリセットすると本当に好きです。何か案は?

+0

ないanswer.I'mないこのエラーが発生した理由を確認してください、しかし、ActiveRecord :: Base.verify_active_connectionsを使ってみてください! 、それはレール2.3.5のbackground_jobデータベース接続の問題を失ったと私を助けている。基本的にDB接続を確認して再接続する...これが助けてくれることを願っています – andrea

答えて

0

この例外をトラップして、reconnect!を試すことはできますか?

リセットが発生すると(RST?)、アダプタのインプリメンテーションに無効な接続または接続プールが存在する可能性があります。 reconnect!が接続/接続プールをリセットし、クライアントが正常に続行できるかどうか疑問に思っています。あるいは、少なくとも、あきらめる前にもう一度試してみてください。

HTH、

Z

1

あなたは、テーブル名が正しいことを確信している場合は、あなたがあなたのモデルでそれを定義した方法をご確認ください。定義にはデータベース名とスキーマ名(通常は 'dbo')を含める必要があります。 Railsのために

2.xxのそれは次のようになります。

set_table_name "database_name.dbo.table_name" 

とRails> = 3.xxのため:

self.table_name = "database_name.dbo.table_name" 
関連する問題