Class: NewRelic::Agent::Database::ConnectionManager

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/new_relic/agent/database.rb

Instance Method Summary collapse

Instance Method Details

#close_connectionsObject

Closes all the connections in the internal connection cache



170
171
172
173
174
175
176
177
178
179
180
# File 'lib/new_relic/agent/database.rb', line 170

def close_connections
  @connections ||= {}
  @connections.values.each do |connection|
    begin
      connection.disconnect!
    rescue
    end
  end

  @connections = {}
end

#get_connection(config, &connector) ⇒ Object

Returns a cached connection for a given ActiveRecord configuration - these are stored or reopened as needed, and if we cannot get one, we ignore it and move on without explaining the sql



154
155
156
157
158
159
160
161
162
163
164
165
166
167
# File 'lib/new_relic/agent/database.rb', line 154

def get_connection(config, &connector)
  @connections ||= {}

  connection = @connections[config]

  return connection if connection

  begin
    @connections[config] = connector.call(config)
  rescue => e
    ::NewRelic::Agent.logger.error("Caught exception trying to get connection to DB for explain.", e)
    nil
  end
end