Leaking db sessions
Posted: Tue 10 Sep 2019 12:21
Hello,
I've recently noticed that when Pooling is enabled then oracle sessions are not removed even after application finishes.
Tested on .net core 2.2 console apps with Devart.Data.Oracle, I tried version 9.7.805 and the previous one. Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit.
Here are details of two sessions that remained in v$session after two executions of app shown above, captured at ~13:01:








Prev sql from these sessions:
Sometimes sessions disappear after longer period of time but I don't know what it depends on.
If I set Pooling=false in connection string they disappear immediately as expected right after conn.Close() is executed.
With Pooling enabled I would expect that all connections and sessions are gone when app quits.
Any idea?
I've recently noticed that when Pooling is enabled then oracle sessions are not removed even after application finishes.
Tested on .net core 2.2 console apps with Devart.Data.Oracle, I tried version 9.7.805 and the previous one. Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit.
Code: Select all
public static void Main(string[] args)
{
using (var conn = new Devart.Data.Oracle.OracleConnection("User Id=xxx;Password=xxx;Server=xxx;Port=1521;Service Name=xxx;Direct=true;License Key=xxxxx;"))
{
conn.Open();
conn.Close();
}
Devart.Data.Oracle.OracleConnection.ClearAllPools();
}








Prev sql from these sessions:
Code: Select all
update user$ set spare6=DECODE(to_char(:2, 'YYYY-MM-DD'), '0000-00-00', to_date(NULL), :2) where user#=:1
If I set Pooling=false in connection string they disappear immediately as expected right after conn.Close() is executed.
With Pooling enabled I would expect that all connections and sessions are gone when app quits.
Any idea?