[ZODB-Dev] Re: Connection pool makes no sense

Dieter Maurer dieter at handshake.de
Fri Dec 30 13:27:52 EST 2005


Tim Peters wrote at 2005-12-29 12:59 -0500:
> ...
>[Tim Peters]
>>> It means that _ConnectionPool no longer has a reason to remember
>>> anything about that Connection.  Application code can continue
>>> keeping it alive forever, though.
>
>[Denis Markov]
>> But what about RDB-Connection what stay in cache forever?
>
>Sorry, I don't know anything about how your app uses RDB connections.  ZODB
>isn't creating them on its own ;-)

They did not tell us about their application. But, Zope's database
adapters work like this. They use the ZODB cache (and its pool)
as an RDB connection pool. Thus, if the ZODB caches are not released,
the RDB connections won't.

> ...
>Nothing can be done
>to _force_ Connections to go away forever.

But most of their resources could be freed when they are removed from
the pool.
I definitely would do this -- in the sense of defensive programming.
Leaking the connections is much more critical than the "all" attribute
growth...

> ...
>> as a result we get many RDB-Connections what will never use but hang our
>> RDB
>
>At this point I have to hope that someone else here understands what you're
>doing.

I can recognize standard Zope behaviour -- although other applications
might show similar behaviour...

> If not, you may have better luck on the zope-db list (which is
>devoted to using other databases with Zope):

The problem is not with the RDB but with the ZODB connections
that are magically not garbage collected.
He will probably not find help on "zope-db".


Some hints how to analyse garbage collection problems might
help him.

-- 
Dieter


More information about the ZODB-Dev mailing list