[Zope-dev] [Bug] Zope's transaction behaviour flawed

Chris McDonough chrism@zope.com
02 Feb 2003 16:41:36 -0500


I am +1 on this.  I suspect that before committing, though, we should
ask people who make use of Zope's transaction manager in "advanced" ways
like Phillip Eby.  

- C


On Sun, 2003-02-02 at 10:40, Dieter Maurer wrote:
> The new behaviour would look something like this:
> 
>   ## request starts
>   transaction.begin()
>   try:
>        object= REQUEST.traverse(...)
>        mapply(object,...)
>        transaction.commit()
>   except:
>        transaction.abort()
>        transaction.begin()
>        transaction.note('%s (application error handling)'
>                         % '/'.join(object.getPhysicalPath)
> 			)
>        try:
> 	   handle_error()
> 	   transaction.commit()
>        except:
>            default_handle_error() # Zope's default error handling
> 	                          # it should not have side effects
> 				  # and is executed inside the
> 				  # error handling transaction
> 	   transaction.abort()
>   ## request ends