roxen.lists.roxen.general

Subject Author Date
[PATCH 08/17] Tie up dangling SQL-transactions at the end of an RXML Stephen R. van den Berg <srb[at]cuci[dot]nl> 20-01-2009
 session

---

 server/base_server/roxenloader.pike |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/server/base_server/roxenloader.pike
b/server/base_server/roxenloader.pike
index 79a596d..6318e2a 100644
--- a/server/base_server/roxenloader.pike
+++ b/server/base_server/roxenloader.pike
@@ -1479,6 +1479,14 @@ protected void sq_cache_free(string db_name, Sql.Sql real)
 
 #ifndef NO_DB_REUSE
   mixed key;
+  if(functionp(key=real->master_sql->status_commit))
+    switch(key())
+    {
+      default:
+        if(catch(real->big_query("ROLLBACK")))
+	   real->reload();
+      case "idle":;
+    }
   catch {
     key = sq_cache_lock();
   };