--On 5. Mai 2007 02:46:58 +0200 Andreas Jung <[EMAIL PROTECTED]> wrote:


If commit fails or another DataManager fails, data is not commited to the
database.


However I am not sure if this is completely true. Although this approach ensures that all SQL statements were execute properly it does not take into account that a commit operation itself might fail even at that point for some reason. Even the Python DB API itself does not support the TPC and most don't driver don't support TPC through an API. So that's basically a flaw in the Python DB-API level. Even up2date drivers like psycopg2 for Postgres don't support something like PREPARE TRANSACTION or COMMIT PREPARED.

See also

<http://mail.zope.org/pipermail/zope3-users/2006-April/002949.html>

Looking back at your hack..it seems to introduce some more safety for a
particular usecase (perhaps general for people dealing only with one database at a time).

But thanks for pointing out this problem. I'll change my code in z3c.sqlalchemy in a similar way to gain at least a bit more safety.

Andreas

Attachment: pgpDNDiDzggFQ.pgp
Description: PGP signature

_______________________________________________
For more information about ZODB, see the ZODB Wiki:
http://www.zope.org/Wikis/ZODB/

ZODB-Dev mailing list  -  ZODB-Dev@zope.org
http://mail.zope.org/mailman/listinfo/zodb-dev

Reply via email to