Hi, I have an app under Plone (2.5.1, Zope 2.9.6, Five 1.4.3), with a browser view that gets fed csv data, and creates a bunch of objects (with some further processing) (essentially like a data import problem). For various reasons, while this view is doing its work (ie during course of the single request), it seems attractive to commit the added objects regularly - e.g. to commit after every 5 newly created objects, say. (as opposed to using savepoints). I would like to confirm if a view like so: from Products.Five.formlib import formbase import transaction class UploadForm( formbase.PageForm ): ... ... @form.action("Process") def process(self, action, data): ... while someLongLoop: ... # Create some persistent objects, # set some attributes on them, etc. ... if everyFifthPass: transaction.commit() transaction.begin() # end of while loop really does have the desired effect, where also ConflictError handling etc continue to work as expected, without nasty side effects etc. I've looked at ZPublisher/Publish.py that seems to do essentially this in the publish() function, except that this also does recordMetaData() { which method in turn carries the comment "Is this code needed?" -- but I'm guessing this may be related to the "Undo" ZMI functionality? Anyway my view is obviously not calling this repeatedly, is this cause for concern? } This is the deepest I've yet dug into the transaction machinery, so I thought it would be prudent to ask the question -- google doesn't have much to say on this one, Thanks in advance for any insights, Charl