[ZODB-Dev] Webkit Threading and ZODB 3.3a2: problems on Windows

Dieter Maurer dieter at handshake.de
Sat Feb 21 04:51:52 EST 2004


Matt Feifarek wrote at 2004-2-20 12:06 -0500:
> ...
>BUT, there is still something smelly. It doesn't seem like changing 
>these objects should prevent persistence from happening for the 
>remainder of the application's lifetime. It seems that even if the 
>developer makes a mistake (like we did) it shouldn't leave the entire 
>ZODB behavior unpredictable for other future transactions.

Almost surely, it does not do that.

   But a transaction lives on until it is either committed or aborted.

   This is another reason why you should ensure that each
   "request" ends (reliably) in either a commit or an abort.
   The request should probably be executed in a harness that looks
   like:

	try:
		... process request ...
		get_transaction().commit()
	finally:
		get_transaction().abort()

    This code may abort a transaction without need. But this should
    not be a problem.

    Be aware, too, that a "commit" may result in a "ConflictError".
    In this case, you should abort the transaction and
    (maybe) retry the request.

-- 
Dieter



More information about the ZODB-Dev mailing list