Subject Re: FBManagedConnection forgetting physical connections
Author Roman Rokytskyy
David,

> 3. The idle remover is to a large extent an attempt to remove timed
> out connections. I'm not sure about the current state of firebird,
> but it used to more or less silently drop old connections, leading
> to problems if you tried to use them later. Thus dropping old
> connections and recreating new up to the min size.

In pool I implemented at work, I use concept of "pingable
connection", i.e. connection that has a boolean ping() method. If
this pingable connection returns false, connection is removed from
the pool. For IB/FB pingable connection executes statement "SELECT 1
FROM RDB$DATABASE". There is a ping interval (in my case 5 sec.) and
each statement keeps its last ping timestamp.

This might solve the problem of idle remover that does not remove, or
removes too late.

I was thinking to contribute this code to the project after release,
because that is completely different concept (I implement
ConnectionPoolDataSource, PooledConnection, etc. interfaces).

Best regards,
Roman