[Grok-dev] Re: STORM howto

Christian Klinger cklinger at novareto.de
Fri Mar 14 06:34:01 EDT 2008


Hi Sebastian,


in nva/stormcontainer/container.py there is a method called

     def __setitem__(self, name, item):
         store = getUtility(IZStorm).get(self.getStoreUtilityName())
         store.add(item)
         #transaction.commit()

just comment out the #transaction.commit()

The tests pass with no errors. I have to ask on storm mailing list
if this is ok without transaction.commit .

I´m working on a new release for the stormcontainer maybe this is also
a issue for it.

HTH Christian


> Excellent. Let me know how and when I can test this update :)
> 
> Mvh Sebastian
> 
> 14 mar 2008 kl. 10.29 skrev Christian Klinger:
> 
>>>> 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