[Zope-dev] Re: [ZCM] [ZC] 869/ 5 Comment "Broken transaction handling in case of exceptions"
Dieter Maurer
dieter@handshake.de
Mon, 7 Apr 2003 19:32:21 +0200
Toby Dickenson wrote at 2003-4-6 20:50 +0100:
> ...
> > Caches routinely pass persistent objects from one transaction to the
> > next.
>
> Are there any examples in stock Zope 2? I would consider this a bug.
The ZODB caches (implemented by yourself) do.
> ....
> It seems to me that these use cases call for a transaction that runs soon
> *after* the error event. It should be *seperate* to the method which
> generates the error report seen by the user.
I am starting to agree that your proposal is the better one:
* The standard case will be that error handling does not
change the ZODB state.
For this standard case, it is not relevant whether
it is executed in the old transaction or a new one.
* Your use case requires that error handling is done
in the original transaction. When the framework
aborts it, there is no way to implement it.
* My use cases can explicitely abort the old transaction
and start a new one -- in case the framework
delays abortion.
* Having several transactions in a single request makes
handling of "ConflictError"s in later transactions mode
difficult.
Dieter