[Zope] ZODB Conflict, Thunked_TM and transaction hoseups

kapil thangavelu kthangavelu@earthlink.net
Sat, 13 Jul 2002 08:03:07 -0700


your doing lots of very idiosyncratic things, so its hard to give much by way 
of advice or analysis.
 
but the problems your seeing are exactly almost exactly the symptons of some 
txn and transaction bugs that have been fixed in 2.5.1. i did a write up of 
the details at.
http://www.zope.org/Members/k_vertigo/ShortStories/Transactions/TxnProblems.txt

i find it strange that you might have run into them as your running 2.5.1, 
but its possible if you're trying to directly call the tm interface instead 
of letting the transaction drive the interaction beyond the intiial 
_register().

one question, are you using any sub transactions as well? 

its also likely from the description that, there are other problems 
(stylesheet conflicts).

hth,

kapil

On Friday 12 July 2002 12:20 pm, Brad Clements wrote:
> I have an irritated customer whose data driven zope website is screwing up,
> seemingly due to ZODB Conflicts on StyleSheet.
>
> Description:
>
> Zope 2.5.1 binary on linux
>
> Interbase, gvibDA
>
> Page Templates
>
> Use PageTemplates and lots of javascript with xml-rpc requests to
> pythonscripts to 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,                bkc@murkworks.com   (315)268-1000
> http://www.murkworks.com                          (315)268-9812 Fax
> AOL-IM: BKClements
>
>
>
> _______________________________________________
> Zope maillist  -  Zope@zope.org
> http://lists.zope.org/mailman/listinfo/zope
> **   No cross posts or HTML encoding!  **
> (Related lists -
>  http://lists.zope.org/mailman/listinfo/zope-announce
>  http://lists.zope.org/mailman/listinfo/zope-dev )