[Zope-dev] limit to number of operations in a transaction?

Jens Vagelpohl jens@zope.com
Sun, 25 Aug 2002 12:16:32 -0400


in your script you must commit a transaction once in a while with 
"get_transaction().commit()".

when you use xml-rpc then every call to zope will end up being its own 
transaction and you will not have this problem.

jens

On Sunday, Aug 25, 2002, at 10:12 US/Eastern, Christopher N. Deckard 
wrote:

> Hello,
> So I've run into a problem.  I had the need to migrate our a
> database of people from an old storage format to a new one.  The
> old format uses Folders and Properties to store information about
> a person.  Name, phone, email, address, etc.  The new format uses a
> Product that I wrote which stores said data in a ParsedXML document.
>
> I have roughly 1,500 people in the database.  I wrote a script to
> migrate the people.  Basically it does getProperty for each property
> on each person folder, then creates the new person object which uses
> XML.  Zope apparently cannot handle this number of operations in one
> transaction.  Zope gets slower and slower and eventually becomes on
> responsive.  It looks like the script has completed, but nothing is
> ever committed to the ZODB, and since Zope is unresponsive it must
> be restarted.  This, as expected, kills that entire transaction
> which was never committed.
>
> Is it known that large numbers of operations, such as above, in a
> single transaction can cause problems?  A transaction, of course,
> being a request, and an operation being something like
> manage_addProduct.
>
> I've solved the "problem" by using xmlrpc and for person in people
> calling my migrate_person script for only one person at a time.
> This is SO MUCH FASTER.  I previously ran the script that migrates
> all of the people, and after 8 hours it still had not completed.
>
> Thoughts?
>
> -Chris
>