Re: deciding whether to do work in tpc_vote or tpc_finish

Chris Withers <[email protected]>
Newsgroups gmane.comp.web.zope.devel
Message-ID <[email protected]>
Laurence Rowe wrote:
> On 8 June 2010 09:51, Chris Withers <[email protected]> wrote:
>> Hi All,
>>
>> I need to write a data manger that interacts with a transactional system
>> that doesn't support two phase commit.
>>
>> Looking for inspiration, I went to look at zope.sqlalchemy and
>> zope.sendmail.
>>
>> In the non-tpc situation, the former does the "commit" in tpc_vote while
>> the latter does it in tpc_finish.
>>
>> Which is "right"? What are the tradeoffs involved?
> 
> Committing in tpc_vote is right so long as you ensure your data
> manager sorts last, and that there are no other data managers in the
> transaction which are using the same trick. See:
> https://mail.zope.org/pipermail/zodb-dev/2007-May/010996.html
> 
> For zope.sendmail, committing in tpc_finish makes sense, especially
> when using QueuedMailDelivery because enqueuing the message in the
> maildir is guaranteed to succeed (the file is just renamed on commit).
> Any failure here would lead to a critical error and inconsistent state
> between the transactional resources.

Okay, I see the two different cases. What's the recommended course of 
action when you end up with two data managers where tpc_vote is the 
"right" place to implement?

cheers,

Chris

_______________________________________________
Zope-Dev maillist  -  [email protected]
https://mail.zope.org/mailman/listinfo/zope-dev
**  No cross posts or HTML encoding!  **
(Related lists - 
 https://mail.zope.org/mailman/listinfo/zope-announce
 https://mail.zope.org/mailman/listinfo/zope )
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.