diff --git a/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb b/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb index a9b06de2a..01a0b19cd 100644 --- a/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb +++ b/lib/active_record/connection_adapters/oracle_enhanced_adapter.rb @@ -467,7 +467,7 @@ def reconnect end # Reconnects to the database. - def reconnect! # :nodoc: + def reconnect!(restore_transactions: false) # :nodoc: super _connection.reset! rescue OracleEnhanced::ConnectionException => e diff --git a/spec/active_record/connection_adapters/oracle_enhanced/connection_spec.rb b/spec/active_record/connection_adapters/oracle_enhanced/connection_spec.rb index abf24baea..6f071701d 100644 --- a/spec/active_record/connection_adapters/oracle_enhanced/connection_spec.rb +++ b/spec/active_record/connection_adapters/oracle_enhanced/connection_spec.rb @@ -30,6 +30,12 @@ expect(ActiveRecord::Base.connection).to be_active end + it "should be active after reconnection to database with restore_transactions: true" do + ActiveRecord::Base.establish_connection(CONNECTION_PARAMS) + ActiveRecord::Base.connection.reconnect!(restore_transactions: true) + expect(ActiveRecord::Base.connection).to be_active + end + it "should use database default cursor_sharing parameter value force by default" do # Use `SYSTEM_CONNECTION_PARAMS` to query v$parameter ActiveRecord::Base.establish_connection(SYSTEM_CONNECTION_PARAMS)