On 2008-01-22 19:48, Dieter Maurer wrote: > James Henstridge wrote at 2008-1-22 20:33 +0900: >> ... >> I do see a use for the branch qualifier though. In a distributed >> transaction, each resource should have a different transaction ID > > Why? > Why is it not equally good to use a common transaction id for > all resource managers? > >> that >> share a common global transaction ID but separate branch qualifiers. >> >> As transaction IDs are global within database clusters for some >> backends (PostgreSQL, MySQL and probably others), the branch qualifier >> is necessary if two databases from the cluster are used in the global >> transaction. > > They refer to the same transaction -- even when several databases > in a cluster are affected. > > The transaction as a whole will want to get prepared, committed, rolledback...
Sections 2.2.5 and 2.2.6 explain why you need a global transaction id and a branch id as well: http://www.opengroup.org/onlinepubs/009680699/toc.pdf Branch ids are used for e.g. multiple connections of the same RM engaging in a global transaction. Each of those connections gets its own branch id. -- Marc-Andre Lemburg eGenix.com Professional Python Services directly from the Source (#1, Jan 22 2008) >>> Python/Zope Consulting and Support ... http://www.egenix.com/ >>> mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/ >>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/ ________________________________________________________________________ :::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,MacOSX for free ! :::: eGenix.com Software, Skills and Services GmbH Pastor-Loeh-Str.48 D-40764 Langenfeld, Germany. CEO Dipl.-Math. Marc-Andre Lemburg Registered at Amtsgericht Duesseldorf: HRB 46611 _______________________________________________ DB-SIG maillist - DB-SIG@python.org http://mail.python.org/mailman/listinfo/db-sig