From: Sven Schöling Date: Mon, 17 Aug 2015 14:05:06 +0000 (+0200) Subject: Nach Request alle Datenbankhandle rollbacken X-Git-Tag: release-3.3.0~14 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=835e3fd9a0114f9aec38af6c98f69a66cec61bdc;p=kivitendo-erp.git Nach Request alle Datenbankhandle rollbacken 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. --- 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;