]> wagnertech.de Git - kivitendo-erp.git/commitdiff
Nach Request alle Datenbankhandle rollbacken
authorSven Schöling <s.schoeling@linet-services.de>
Mon, 17 Aug 2015 14:05:06 +0000 (16:05 +0200)
committerSven Schöling <s.schoeling@linet-services.de>
Mon, 17 Aug 2015 14:05:06 +0000 (16:05 +0200)
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
SL/Dispatcher.pm

index 262c113efd3be551818bf852874f4e2e27bdba62..e45965f229c480e92b348dd69fc108617792a25d 100644 (file)
@@ -35,6 +35,10 @@ sub reset {
   $dbh;
 }
 
+sub reset_all {
+  $_->rollback for values %cache;
+}
+
 sub clear {
   %cache = ();
 }
index e8725b5f352c2469cb5694ef5bd551c28423a652..77074ccd02449be8c7ad3821d4987fb428087ee0 100644 (file)
@@ -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;