"Hung Jung Lu" <hungjunglu@hotmail.com> wrote: <snip>
I've mentioned two-phase commit to Digicool people. Not sure whether it's already inside Zope or not, but it seems not. Zope's TM (Transaction Machinery) does not seem to be two-phase. See the TM.py file itself: it only has
def _finish(self): self.db.commit()
That is, I don't see the equivalent of prepare_to_commit().
ZODB.Transaction uses a TPC protocol: please notice 'tpc_begin()', 'tpc_vote()', 'tpc_abort()', 'tpc_finish()'. This is how ZODB can synchronize, for instance, with Oracle/Sybase commit/rollback. For the nonce, ZODB expects to be doing the driving; playing nice with others XA's is down the road a bit. See Jim's model: http://www.zope.org/Documentation/Developer/Models/ZODB and, in particular: http://www.zope.org/Documentation/Developer/Models/ZODB/ZODB_Architecture_St... for more than you want to know. :) Tres. -- =============================================================== Tres Seaver tseaver@digicool.com Digital Creations "Zope Dealers" http://www.zope.org