[DB-SIG] Two-phase commit API proposal (was Re: Any standard for two phase commit APIs?)
M.-A. Lemburg
mal at egenix.com
Mon Jan 21 13:23:17 CET 2008
On 2008-01-21 13:12, James Henstridge wrote:
> On 21/01/2008, Federico Di Gregorio <fog at initd.org> wrote:
>>> Perhaps an argument to xa_commit() would be appropriate here?
>>>
>>> connection.xa_commit(onephase=True)
>>>
>>> Without the argument, the commit would be considered to be a
>>> ProgrammingError. That would reduce the chance of programmer error
>>> leading to data corruption.
>> Lets not make an API that has features useful on a single backend. I
>> suppose the necessity for a one-phase commit in a two-phase transaction
>> is rare. A simple API means early adoption by most of the adapters.
>
> Well, Postgres lets you commit a 2PC transaction before preparing it
> too (after all, it doesn't know you are using 2PC until you prepare).
>
> Judging by the kinterbasdb and cx_Oracle code, they can do so as well.
> This isn't just a "single backend" feature.
Mixing one-phase and two-phase commits sounds like mixing two
concepts that don't belong together, IMHO.
It would be too easy for an application to issue a .commit()
somewhere and thereby breaking the whole two phase commit
idea.
I'd rather like to see the two concepts well separated and
exceptions raised if you try to mix them.
After all, you could still open a second connection if you
need one phase transactions for some other purpose.
--
Marc-Andre Lemburg
eGenix.com
Professional Python Services directly from the Source (#1, Jan 21 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
More information about the DB-SIG
mailing list