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