From 835e3fd9a0114f9aec38af6c98f69a66cec61bdc Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sven=20Sch=C3=B6ling?= Date: Mon, 17 Aug 2015 16:05:06 +0200 Subject: [PATCH] Nach Request alle Datenbankhandle rollbacken MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit An diversen Stellen wird in Legacycode eine Transaktion manuell erstellt. Wenn in dieser Transaktion eine Exception geworfen wird, beendet das den Requst ohne die Handle aufzuräumen in der Annahme, dass die disconnected werden. Deshalb nach jedem Request einmal alle Handle rollbacken, ohne sie zu disconnecten. --- SL/DBConnect/Cache.pm | 4 ++++ SL/Dispatcher.pm | 2 ++ 2 files changed, 6 insertions(+) diff --git a/SL/DBConnect/Cache.pm b/SL/DBConnect/Cache.pm index 262c113ef..e45965f22 100644 --- a/SL/DBConnect/Cache.pm +++ b/SL/DBConnect/Cache.pm @@ -35,6 +35,10 @@ sub reset { $dbh; } +sub reset_all { + $_->rollback for values %cache; +} + sub clear { %cache = (); } diff --git a/SL/Dispatcher.pm b/SL/Dispatcher.pm index e8725b5f3..77074ccd0 100644 --- a/SL/Dispatcher.pm +++ b/SL/Dispatcher.pm @@ -335,6 +335,8 @@ sub handle_request { $::form = undef; $::myconfig = (); $::request = undef; + + SL::DBConnect::Cache->reset_all; Form::disconnect_standard_dbh; $self->_watch_for_changed_files; -- 2.20.1