>> If you see many RDB connections, then it's a RDB problem and not a ZODB
>> problem. Something not releasing RDB connections quick enough, or
>> leaking RDB connections.
> Not agree. Can you answer the question? Does self.all.remove(c) mean that
> we WANT to destroy connection instance?
It means that _ConnectionPool no longer has a reason to remember anything
about that Connection. Application code can continue keeping it alive
> If not then where in ZODB source code i can see connection destruction?
> Clearing cache and calling _v_database_connection.close() method?
There's isn't any explicit "destruction" code. Python's cyclic garbage
collection reclaims a Connection `c` (along with its cache, etc) if and when
no strong references to `c` exist at the time Python's cyclic gc runs.
For more information about ZODB, see the ZODB Wiki:
ZODB-Dev mailing list - ZODB-Dev@zope.org