On 18/01/2008, M.-A. Lemburg <[EMAIL PROTECTED]> wrote:
> > If that has more than just 'prepare_transaction', 'commit_transaction' and
> > 'rollback_transaction' it has no place in the DB-API IMO. These three
> > actions are the entirety of what PostgreSQL provides and are the building
> > blocks you need to build anything more complex (including XA). We don't need
> > driver authors  to build a transaction manager. We just need driver authors
> > to provide the building blocks for DB-API connections to be integrated with
> > transaction managers.
>
> The XA API is a bit more complex than just the three APIs you
> mention (with "prepare_transaction" meaning "prepare to commit
> a transaction"):
[snip]

It is worth noting that the JDBC driver implements the Java variant of
XA on top of the three primitives Stuart mentioned.  The remaining
parts are mainly policy of when to use those primitives.


As another data point on 2PC APIs, I found that the cx_Oracle driver
provides such an API:
    http://cx-oracle.sourceforge.net/html/connobj.html

It is similar to kinterbasdb's one in that it uses
prepare()/commit()/rollback() methods on the connection, but it also
sounds like it requires you to call a begin() method to start a
transaction.

James.
_______________________________________________
DB-SIG maillist  -  DB-SIG@python.org
http://mail.python.org/mailman/listinfo/db-sig

Reply via email to