Laurence Rowe wrote:
> On 8 June 2010 12:59, Chris Withers <ch...@simplistix.co.uk> wrote:
>> Laurence Rowe wrote:
>>> it fails you will end up in an inconsistent state whatever. It's just
>>> that with the maildir implementation, it pretty much can't fail as it
>>> is only a rename and that should always succeed. Really, it should
>>> register as an after commit hook instead.
>> How do I do that?
> transaction.get().addAfterCommitHook(callable, args, kwargs)
Hmm, I realised from looking at the code this morning that this won't.
The reason being that there's no equivalent AfterAbortHook where I can
abort the messaging transaction in the event of transaction-package
I see these things called "synchronizers", though... what are they and
what is their intended purpose? Where are they documented?
>> My other thought was to have it commit the message send in tpc_vote, and
>> make sure it sorts before zope.sqlalchemy. That way, if the message send
>> fails, the "transaction" will be aborted, and that will include rolling back
>> the zope.sqlalchemy session rather than committing it.
> In that case if the sqlalchemy commit fails, you still sent the message.
Yeah, I guess given that, of the possible failure modes, I'd prefer the
message not to be sent in the event of sqlalchemy commit failure, I
should have it sort after sqlalchemy...
Simplistix - Content Management, Batch Processing & Python Consulting
Zope-Dev maillist - Zope-Dev@zope.org
** No cross posts or HTML encoding! **
(Related lists -