instance method reconnect!

Ruby on Rails 8.1.2

Since v2.2.3

Available in: v2.2.3 v2.3.18 v3.0.20 v3.1.12 v3.2.22.5 v4.0.13 v4.1.16 v4.2.9 v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

reconnect!(restore_transactions: false)

Disconnects from the database if already connected, and establishes a new connection with the database. Implementors should define private #reconnect instead.

Parameters

restore_transactions key = false
Source
# File activerecord/lib/active_record/connection_adapters/abstract_adapter.rb, line 711
      def reconnect!(restore_transactions: false)
        retries_available = connection_retries
        deadline = retry_deadline && Process.clock_gettime(Process::CLOCK_MONOTONIC) + retry_deadline

        @lock.synchronize do
          attempt_configure_connection do
            @allow_preconnect = false

            reconnect

            enable_lazy_transactions!
            @raw_connection_dirty = false
            @last_activity = @connected_since = Process.clock_gettime(Process::CLOCK_MONOTONIC)
            @verified = true
            @allow_preconnect = true

            reset_transaction(restore: restore_transactions) do
              clear_cache!(new_connection: true)
              configure_connection
            end
          rescue => original_exception
            translated_exception = translate_exception_class(original_exception, nil, nil)
            retry_deadline_exceeded = deadline && deadline < Process.clock_gettime(Process::CLOCK_MONOTONIC)

            if !retry_deadline_exceeded && retries_available > 0
              retries_available -= 1

              if retryable_connection_error?(translated_exception)
                backoff(connection_retries - retries_available)
                retry
              end
            end

            raise translated_exception
          end
        end
      end

Defined in activerecord/lib/active_record/connection_adapters/abstract_adapter.rb line 711 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveRecord::ConnectionAdapters::AbstractAdapter

Type at least 2 characters to search.

↑↓ navigate · open · esc close