It can lead to nasty, apparently non-deterministic effects.
You may lose your database connection mid transaction
and part of what you think is a transaction (i.e. atomical) can be lost.
What are the circumstances under which this can occur? I've found something
similiar (?) when I was dealing with stored procedures in DCOracle2:
When you have a request that causes the new _v_database_connection to be
created and this new connection is used to execute stored procedure which
causes exception. Then... transaction is aborted and resource
managers' abort() functions are called.
I've found that newly created _v_database_connection was destroyed
before(!) ResourceManager's (used to handle relational db connection)
abort() function was called, so there was no rollback to database... huh...
Same thing may apply to ZRDB.DA.DA but I'm not sure about that.
Zope-DB mailing list