[Checkins] SVN: z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/ better integration of session handling with TPC

Andreas Jung andreas at andreas-jung.com
Sat May 5 02:18:42 EDT 2007


Log message for revision 75478:
  better integration of session handling with TPC
  

Changed:
  U   z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/CHANGES.txt
  U   z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/base.py

-=-
Modified: z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/CHANGES.txt
===================================================================
--- z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/CHANGES.txt	2007-05-05 02:46:15 UTC (rev 75477)
+++ z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/CHANGES.txt	2007-05-05 06:18:41 UTC (rev 75478)
@@ -1,7 +1,12 @@
-0.1.13 (unreleased)
+0.1.13 (05.05.2007)
 
    - sessions were returned from the wrong cache
 
+   - moved the rollback/commit handling inside the SessionDataManager
+     in order to play more nicely with the TPC. See
+     http://mail.zope.org/pipermail/zodb-dev/2007-May/010996.html
+
+
 0.1.12 (03.05.2007)
 
    - createSAWrapper() got a new optional 'name' parameter in order

Modified: z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/base.py
===================================================================
--- z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/base.py	2007-05-05 02:46:15 UTC (rev 75477)
+++ z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/base.py	2007-05-05 06:18:41 UTC (rev 75478)
@@ -148,13 +148,10 @@
         self.transaction = session.create_transaction()
 
     def abort(self, trans):
-        self.transaction.rollback()
-        session_cache.set(last_session=None, last_transaction=None)
+        pass
 
     def commit(self, trans):
         self.session.flush()
-        self.transaction.commit()
-        session_cache.set(last_session=None, last_transaction=None)
 
     def tpc_begin(self, trans):
         pass
@@ -163,13 +160,16 @@
         pass
 
     def tpc_finish(self, trans):
-        pass
+        self.transaction.commit()
+        session_cache.set(last_session=None, last_transaction=None)
+        
 
     def tpc_abort(self, trans):
-        pass
+        self.transaction.rollback()
+        session_cache.set(last_session=None, last_transaction=None)
 
     def sortKey(self):
-        return str(id(self))
+        return 'z3c.sqlalchemy' + str(id(self))
 
 
 class ConnectionDataManager(object):
@@ -206,7 +206,7 @@
         pass
 
     def sortKey(self):
-        return str(id(self))
+        return 'z3c.sqlalchemy' + str(id(self))
 
 
 class ZopeBaseWrapper(BaseWrapper):



More information about the Checkins mailing list