Subject | Re: FBManagedConnection forgetting physical connections |
---|---|
Author | Roman Rokytskyy |
Post date | 2003-03-10T14:52:58Z |
David,
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
> 3. The idle remover is to a large extent an attempt to remove timedIn pool I implemented at work, I use concept of "pingable
> 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.
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