[ZODB-Dev] Re: afterCommitHook on abort

Christian Zagrodnick cz at gocept.com
Tue Sep 18 06:50:05 EDT 2007


On 2007-09-12 15:49:49 +0200, Julien Anguenot <ja at nuxeo.com> said:

> This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
> 
> This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
> 
> Hi there,
> 
> Christian Zagrodnick wrote:
>> Any opinion about this?
> 
> I guess the documentation was a little bit ahead of the implementation
> at the time I did this.
> 
> Though, I think the after commit hooks  should be called  in the abort()
> method as well as it might be interesting, as I mentioned it in the
> documentation, and as well to be consistent with the commit() behavior.
> 
> Maybe cleaning up the documentation would be simpler if nobody needs
> this feature right now.

Well, I'd need it, so I'll implement it, ok?

>> =20
>> On 2007-08-30 15:48:53 +0200, Christian Zagrodnick <cz at gocept.com> said=
> :
>> =20
>>> Hi,
>>> 
>>> the documentation in the _transaction.py reads:
>>> 
>>> After-commit hook
>>> ------------------
>>> 
>>> Sometimes, applications want to execute code after a transaction is
>>> committed or aborted. [...] The callable will be called with a Boolean=
> 
>>> value representing the status of the commit operation as first
>>> argument (true if successfull or false iff aborted) [...]
>>> 
>>> And indeed in the commit() method it reads:
>>> 
>>> try:
>>> self._commitResources()
>>> self.status =3D Status.COMMITTED
>>> except:
>>> t, v, tb =3D self._saveAndGetCommitishError()
>>> self._callAfterCommitHooks(status=3DFalse)
>>> raise t, v, tb
>>> else:
>>> if self._manager:
>>> self._manager.free(self)
>>> self._synchronizers.map(lambda s: s.afterCompletion(self))=
> 
>>> self._callAfterCommitHooks(status=3DTrue)
>>> 
>>> 
>>> But in the abort() method the hooks are not called.
>>> 
>>> Is this intentional? If yes, the documentation should be adjusted to
>>> reflect that the hooks are *only* called if there *is* a commit and it=
> 
>>> is *failing*.
>>> 
>>> If not the hooks should be called in abort (my favourite) :)
>>> 

-- 
Christian Zagrodnick

gocept gmbh & co. kg  ·  forsterstrasse 29 · 06112 halle/saale
www.gocept.com · fon. +49 345 12298894 · fax. +49 345 12298891





More information about the ZODB-Dev mailing list