[Zope-dev] Zope threads on 2.7.0, python 2.3.3

Dario Lopez-Kästen dario at ita.chalmers.se
Wed May 26 02:44:44 EDT 2004


Heimo Laukkanen wrote:

>> Do you use any DA, nad have long running SQL queries?
> 
> 
> Yes, extensively. We use DCOracle2 that had to be patched to work with  
> UTF-8. And we combine it with badly scripted code too. We started to do  
> prototype by using own Archetypes storage layer that stores data from  
> content objects to the Oracle database in certain format - so every 
> access  to an object actually creates a load of queries to the Oracle 
> database.
> 
> Connections to the databse are handled by the Oracle adapter in Zope, 
> so  we have not done any own connections but rather just run queries 
> through  Zope adapter.

We use a lot of queries (minimum 10-15) for each request, accros around 
7 DA connected to various Oracle schemas. Most of the queries are 
fairsly simple, but there are a couple of queries that are often used 
that are just plain bad, however they are so bad that it is very 
difficult to fix them.

These queries generate a lot of load on the DB server (they are *very* 
bad SQL). So these tend to take a long tiem to respond.

>> We have no fix for this, but have resigned to do restarts every now 
>> and  then. We use Zope 2.5.1, Redhat 7.3
> 
> How did you debug or pinpoint the culprit to be DCOracle connection?

Gut feeling, doing some basic optimisation of the not-so complicated 
cases. I did receive a few tips on how to do real debugging from Matt, 
Dieter and others, but those tips assume a level of knowlegde that I do 
not posses yet - also I have until recently not had any hardware to do 
that kind of debugging on.

I just made some basic observations - some times Zope would stop 
responding and angry users would call, and I woudl find threads that had 
been running for more thatn 70000 seconds, while at the same time I 
could observe queries on the database that had been running for similar 
lenght of time, occasionally even blocking the database altoghther.

Some times it seemed like Zope wold "lose" the connection to the 
database (we still get that randomly from now and then) but I am not 
100% sure that this is only zope's fault - it may be that the database 
was under so much load that it "lost" the connection to zope, thus 
triggering some kidn of "wait for reply" loop on zope's side.

Chris withers has done some work in improving DCOracle2's connections 
and general bug-fixning. If you haven't used it, grab the latest 
DCOracle2 from cvs - it is much better.

We see this behaviour mostly under heavy load - many users accessing the 
database all the time. Using the latest DCOracle and improving parts of 
our code has removed a lot of the problems, however it believe it is 
still unclcear what the problem is - in our setting, my stance is that 
we have only cured the symptoms, not the real problems...

> Have you tried cx_Oracle?
> 

No I was not aware that they had a Zope adaptor.

/dario

-- 
-- -------------------------------------------------------------------
Dario Lopez-Kästen, IT Systems & Services Chalmers University of Tech.



More information about the Zope-Dev mailing list