From c98011bc32ac892f38bbda15b485c87a35795bba Mon Sep 17 00:00:00 2001 From: Jeremy Kemper Date: Tue, 15 Nov 2005 15:58:36 +0000 Subject: SQLServer: active? and reconnect! methods for handling stale connections. References #428. git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3045 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- .../connection_adapters/sqlserver_adapter.rb | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) (limited to 'activerecord/lib/active_record') diff --git a/activerecord/lib/active_record/connection_adapters/sqlserver_adapter.rb b/activerecord/lib/active_record/connection_adapters/sqlserver_adapter.rb index 78486a2a1a..9320717b34 100644 --- a/activerecord/lib/active_record/connection_adapters/sqlserver_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/sqlserver_adapter.rb @@ -207,24 +207,21 @@ module ActiveRecord # Returns true if the connection is active. def active? - @connection.execute("SELECT 1") {|sth|} + @connection.execute("SELECT 1") { } true - rescue DBI::DatabaseError => e + rescue DBI::DatabaseError, DBI::InterfaceError false end - # Reconnects to the database. + # Reconnects to the database, returns false if no connection could be made. def reconnect! - begin - @connection.disconnect - @connection = DBI.connect(*@connection_options) - rescue DBI::DatabaseError => e - @logger.warn "#{adapter_name} automatic reconnection failed: #{e.message}" - end + @connection.disconnect rescue nil + @connection = DBI.connect(*@connection_options) + rescue DBI::DatabaseError => e + @logger.warn "#{adapter_name} reconnection failed: #{e.message}" if @logger + false end - - def select_all(sql, name = nil) select(sql, name) end -- cgit v1.2.3