[Zope-DB] Closing idle DCoracle2 Connections?

Matthew T. Kromer matt at bane.mi.org
Fri Oct 21 20:39:31 EDT 2005

> However, a colleague found out that for his (probably special kind
> of) setup, "cxOracle" was much slower than DCOracle2 (by about
> a factor of 4).

heh, well I like to write FAST code when I can ;)  However, the Zope  
DA/RDBMS machinery slows the db conection down enormously -- like 9x  
if I recall.  DCOracle2 is very fast at getting you to the Nth result  
in a result set as long as you don't make it turn all the prior  
results into python objects first (which is, sadly, the behavior of  
the DA.)

What happens with Zope and DCOracle2 I think is when the DA  
connection object is ghosted, it doesn't know about it, and thus  
doesn't close its connection.  There may be some grief that it also  
doesn't close the right connection object (if I recall, there is an  
actual close() method on the underlying C connection object, but I'm  
not sure if the DA ever calls it).  The close is implicit when the  
connection object is destroyed, but usually there's so much stuff  
loaded that *someone* has a reference to the connection.

However, the code is still geared around OCI8 and some Oracle 9 code,  
its due for some refactoring in a big way to deal with the profusion  
of handle-driven objects now much more prevalent in Oracle 10.

More information about the Zope-DB mailing list