[Zope] preventing transaction rollback

Sean Hastings whysean at softhome.net
Fri Sep 24 17:02:34 EDT 2004


Thank you very very much.

MaildropHost was exactly what I needed - it is working great - both
preventing duplicate mails, and speeding up the execution of my transactions
quite considerably so that I am not getting nearly as many of the conflicts
that were vastly slowing my application, and causing the duplicate emails to
begin with.

You have been very helpful to me on a number of occasions, both in answering
my questions, and in the answers you have given to questions that I have
found in the archives.

Your helpfulness is very much appreciated!

--Sean

> -----Original Message-----
> From: Andreas Jung [mailto:lists at andreas-jung.com]
> Sent: Sunday, September 19, 2004 3:43 AM
> To: Sean Hastings; zope at zope.org
> Subject: Re: [Zope] preventing transaction rollback
>
>
> Use MailDropHost. It ties mail delivery to the transaction system of Zope.
>
> -aj
>
> --On Sonntag, 19. September 2004 3:38 Uhr -0400 Sean Hastings
> <whysean at softhome.net> wrote:
>
> > I have a section of code that I want to have run only once during a
> > request. It mails out some information about the request. I
> want only one
> > email per request even if a conflict occurs during the request. I am
> > having no luck eliminating duplicate emails. I have tried this a few
> > different ways now, but currently my code looks something like this:
> >
> > def theFunction(self,REQUEST):
> > 	"docstring"
> > 	...do some stuff...
> > 	get_transaction().commit()
> > 	try:
> > 		...send the email...
> > 		get_transaction().commit()
> > 	except:
> > 		pass
> > 	...do some more stuff...
> > 	return self.return_page_template(REQUEST)
> >
> > I thought that this try block with a commit() would isolate the
> send mail
> > code in its own transaction, and then catch any conflict exception and
> > ignore it. But I am still getting multiple emails per transaction when
> > multiple requests happen at the same time and conflicts occur.
> >
> > How can I isolate a part of the code so that it can never roll back and
> > execute again?
> >
> > --Sean
> >
> > _______________________________________________
> > Zope maillist  -  Zope at zope.org
> > http://mail.zope.org/mailman/listinfo/zope
> > **   No cross posts or HTML encoding!  **
> > (Related lists -
> >  http://mail.zope.org/mailman/listinfo/zope-announce
> >  http://mail.zope.org/mailman/listinfo/zope-dev )
>
>
>
>



More information about the Zope mailing list