[Grok-dev] Re: STORM howto

Christian Klinger cklinger at novareto.de
Fri Mar 14 05:29:23 EDT 2008


Wichert Akkerman schrieb:
> Previously Christian Klinger wrote:
>> Sebastian Ware schrieb:
>>> Do I add nva.stormcontainer in setup.py in order to fetch this egg? I 
>>> would like to try it.
>>>
>> Yes this should do it. Hopefully...
>>
>>> Also, is there any way I can control the commits? I am basically doing:
>>>
>>> for obj in objlist:
>>>    ormContainer['id'] = obj
>> In the stormcontainer there is a __setitem__ which is responsible for 
>> the insert.
>>
>>     def __setitem__(self, name, item):
>>         store = getUtility(IZStorm).get(self.getStoreUtilityName())
>>         store.add(item)
>>         transaction.commit()
>>
>> The transaction.commit() fires also an rdb.commit. This means on every 
>> insert there is a commit.
>>
>> But maybe it is possible to delete the transaction.commit() in 
>> __setitem__, and rely on zopes transaction.commit.?
> 
> I do not think any library or framework should ever do a commit itself.
> 
> You should hook properly into the zope transaction manager. Any
> premature commit can result in inconsistent or erroneous data in your
> database. And reducing the number of commits will have a huge impact on
> performance.

Hi Wichert,

thx for this info. I will delete the transaction.commit() run the tests. 
and see if it works again... :-))

Christian

> 
> Wichert.
> 



More information about the Grok-dev mailing list