Oleg Broytmann a écrit :
On Thu, Mar 15, 2007 at 11:29:31AM -0500, Rick Flosi wrote:
  
def doInTransaction(func, *args, **kw):
    

   This code has been added to the SQLObject and is now in SQLObject 0.8.

  
         else:
             conn.commit()
             return value
    

   I think here is a problem. conn.commit(True) should help - it releases
the underlying connection.

Oleg.
  
Yes it seems to work much better with commit(True).
Could you tell me a little more about how this works? what mean released here?
Is it efficient? I mean, does it open a connection each time I make a transaction?
How can I check that there is no more connection leak. (I checked the mysql process list, and it seems ok...)
What about rollbacks? shoudn't they release the connection too? Or is it always released?

About caches, how is it possible that I don't have atomicity problems, if  the row instance is the same object between threads, how can transactions work correctly if I don't get the same read value because of a commit not done in another thread?
Should I use connection.queryAll instead?

Isn't it a limit of the object relational mapper?

Thanks very much for your great support!