On Sunday 02 February 2003 3:40 pm, Dieter Maurer wrote:
> Zope's current transaction behaviour is essentially:
>
> 1   ## request starts
> 2   transaction.begin()
> 3   try:
> 4        object= REQUEST.traverse(...)
> 5        mapply(object,...)
> 6        transaction.commit()
> 7   except:
> 8        transaction.abort()
> 9        handle_error()
> 10  ## request ends
>
>
> This is flawed as error handling is done outside of a transaction.
>
>    Potential changes during the error handling spill over
>    uncontrolled into another request and are there
>    either committed or aborted as part of this request.

A visit to the dentist has given me some time to think about this, and I think 
there is a flaw in this explanation. Surely any changes that leak out from 
one request will will be be aborted before they can do any damage, during the 
call to transaction.begin() on line 2.

The doc string from transaction.begin is:

        '''Begin a new transaction.

        This aborts any transaction in progres.
        '''

(I should have a chance to experiment with this tomorrow)

-- 
Toby Dickenson
http://www.geminidataloggers.com/people/tdickenson

_______________________________________________
Zope-Dev maillist  -  [EMAIL PROTECTED]
http://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists -
 http://mail.zope.org/mailman/listinfo/zope-announce
 http://mail.zope.org/mailman/listinfo/zope )

Reply via email to