Dennis Allison wrote:
Ah so desu.  That's the conceptual hook I was missing.  Only one
transaction per request and no subtransactions!

ZODB substransactions won't help you here in the slightest...

A transaction is
processing initiated by a client request or a redirect. (Anything else?) A transaction has its own REQUEST and RESPONSE objects.

Wrong way round. Each REQUEST has one RESPONSE associated with it, and the publisher does either a transaction commit, if no errors occur, or a transaction abort, if errors occur, once it has processed a REQUEST. Read conflict errors can be raised at any time, but shouldn't really occur once you have MVCC working. Write conflict errors only happen during transaction commit. The publisher retries the whole request if a conflict errors of either sort occurs. If the retry fails 3 times, it gives up, aborts the transaction and reports the conflict error to the end user by way of writing to the response object.



Simplistix - Content Management, Zope & Python Consulting
Zope maillist  -
**   No cross posts or HTML encoding!  **
(Related lists - )

Reply via email to