[Zope] ZODB Conflict, Thunked_TM and transaction hoseups
Fri, 12 Jul 2002 15:20:07 -0400
I have an irritated customer whose data driven zope website is screwing up, seemingly
due to ZODB Conflicts on StyleSheet.
Zope 2.5.1 binary on linux
interace through ZSQL methods to talk to interbase via gvibDA.
I also use SQLDict, maintaining a pool of SQLDict instances (they're expensive to
create) in a Queue (stored in an external method)
After pulling an SQLDict from the queue, I attach a gvibDA connection to sqldict by
calling the Interbase DA object (to get a db instance), then (from an external method) I
call db._register() and then use the connection object from that thread.
This works rather well.
However, as soon as I get a ZODB conflict, all subsequent transactions fail. That is, I
am unable to alter the back-end (interbase) database at all. It's as if every single
transaction after that point gets a permanent _rollback().
I have no idea why I'm getting conflicts on ZStyleSheet. I even tried creating a cached
DTML method that caches the stylesheet, then serving that. But now I get conflicts on
that object as well.
2002-07-12T18:45:38 INFO(0) ZODB conflict error at /Smoking/CachedStyleSheet (1 conflicts since startup at 2002-07-12T18:42:15)
2002-07-12T18:47:02 INFO(0) ZODB conflict error at /Smoking/CachedStyleSheet (2 conflicts since startup at 2002-07-12T18:42:15)
So .. it seems that my method of hooking into gvibDA/db.py, calling _register on it (it
subclasses THUNKED_TM) is not entirely proper, because once a transaction error
occurs, I seem to be blocking some proper rollback.
But, why am I getting a conflict error in the first place? It makes no sense. . Just like
getting conflicts on helpsys.
Brad Clements, firstname.lastname@example.org (315)268-1000
http://www.murkworks.com (315)268-9812 Fax