Permalink
Browse files

SQLServer: active? and reconnect! methods for handling stale connecti…

…ons. References #428.

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3045 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information...
jeremy committed Nov 15, 2005
1 parent e7b65b5 commit c98011bc32ac892f38bbda15b485c87a35795bba
Showing with 9 additions and 12 deletions.
  1. +1 −1 activerecord/CHANGELOG
  2. +8 −11 activerecord/lib/active_record/connection_adapters/sqlserver_adapter.rb
View
@@ -1,6 +1,6 @@
*SVN*
* SQLServer: active? and reconnect! methods for handling stale connections. #428 [kajism@yahoo.com]
* SQLServer: active? and reconnect! methods for handling stale connections. #428 [kajism@yahoo.com, Tom Ward <tom@popdog.net>]
* Associations handle case-equality more consistently: item.parts.is_a?(Array) and item.parts === Array. #1345 [MarkusQ@reality.com]
@@ -207,24 +207,21 @@ def supports_migrations? #:nodoc:
# 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

0 comments on commit c98011b

Please sign in to comment.