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