Re: [ZODB-Dev] Re: Understanding conflicts
Jim Carroll wrote at 2007-8-12 16:45 +: ... Somehow, the code that adds the message to the persistent list is running more than once. I have read that ZEO will re-run python code on a retry You have read something wrong. The only thing, ZEO does in case of a conflict is trying to call _p_resolveConflict on the conflicting object. Every redo is something the application may or may not do. -- Dieter ___ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org http://mail.zope.org/mailman/listinfo/zodb-dev
[ZODB-Dev] Re: Understanding conflicts
Dieter Maurer dieter at handshake.de writes: Jim Carroll wrote at 2007-6-12 15:57 +: ... The code that's running essentially does: add message to Persistent list in object get_transaction().commit() send_email() We are using Zodb 3.3a3, and ZEO 2.3a3. I've read that when a transaction retries, it re-runs code on the server side. The ZODB by itself does not rerun anything. Zope (its ZPublisher) retries a request up to three times when it fails due to a ConflictError. I'm not using Zope. I've got a quixote application that's using ZODB and ZEO. Somehow, the code that adds the message to the persistent list is running more than once. I have read that ZEO will re-run python code on a retry, and I think this is what's causing the duplicated data. In my mind, what I need is some sort of assurance that the Persistent List is only being appened to once. For some reason the commit() is causing it to be appended more than once when there's a conflict error. How can I isolate my transactions so that a conflict aborts the current transaction before re-trying? Thanks, -Jim ___ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org http://mail.zope.org/mailman/listinfo/zodb-dev
Re: [ZODB-Dev] Re: Understanding conflicts
Jim Carroll wrote at 2007-6-22 16:30 +: ... I'll be checking the quixote mailing list, but quixote isn't going to have anything zope-specific, and I do think that it's the interaction with zope that's giving me trouble... The other sendmail packages are Zope products and can use some Zope infrastructure. However, eventually, this Zope infrastructure uses basic mechanisms of th ZODB only. Therefore, non Zope components can use them as well. -- Dieter ___ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org http://mail.zope.org/mailman/listinfo/zodb-dev
[ZODB-Dev] Re: Understanding conflicts
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 Jim Carroll wrote: Hi, I've got a problem with a website where occasionally we send multiple e-mail messages when really we only want to send one. The last time it happened, I noticed that there was a Conflict Error at the same time as the e-mail send. The code that's running essentially does: add message to Persistent list in object get_transaction().commit() send_email() We are using Zodb 3.3a3, and ZEO 2.3a3. I've read that when a transaction retries, it re-runs code on the server side. How can I verify that that's what my setup would do? (my maillog on my server side doesn't show the duplicate e-mails, but I might not be looking far enough back in the logs.) The stock MailHost does have this problem. There are a couple of alternatives which address it: - - zope.sendmail, http://svn.zope.org/zope.sendmail/trunk/README.txt?rev=72633view=auto - - MaildropHost, http://www.dataflake.org/software/maildrophost Tres. - -- === Tres Seaver +1 540-429-0999 [EMAIL PROTECTED] Palladion Software Excellence by Designhttp://palladion.com -BEGIN PGP SIGNATURE- Version: GnuPG v1.4.6 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGbtOz+gerLs4ltQ4RAo1mAJ48broeqxm9xlALdNZHJumkud7BJwCff6lX rHzdVmAPa+3zfGr27SqDuYA= =RQVQ -END PGP SIGNATURE- ___ For more information about ZODB, see the ZODB Wiki: http://www.zope.org/Wikis/ZODB/ ZODB-Dev mailing list - ZODB-Dev@zope.org http://mail.zope.org/mailman/listinfo/zodb-dev