ODP.NET 10.2 - Connection Pooling and Thread leaks
519674Nov 1 2008 — edited Dec 2 2008Hi,
Trying to work out what is going with our Oracle instance (10.2.0.1 x64 on windows 2003). At least once a day (sometimes several times a day) thread count on the oracle.exe proc going though the roof (800+) and oracle craps out, rebooting the db and recycling all the apps is the only solution. v$session and v$process counts are half the thread count. Been trying to understand what the hell is going on ( have a SR open with Oracle but not getting anywhere fast).
Today I've been experimenting (on the live DB and apps :O ) with the connection pooling trying to understand better how connections correlate to threads and how they get killed off. So I stopped all the apps then started one website up with Max Pool Size=1 . The website run on multiple web servers(LB) but share one set of files. I learnt 2 things
1) each connection results in 2 thread in the database.
2) each app creates its own connection pool
At least this is what it seems to be doing. Although according to Oracle docs all apps using the exact same connection string should use the same connection pool this doesn't seem to be the case.
quote the doc "The connection pooling service creates connection pools by using the ConnectionString property as a signature, to uniquely identify a pool."
Can anybody explain this behaviour?
So my DB hang might be caused by there being too many connection pools and connections being created during busy times (more than there are resources to serve) in combination with bugs in said DB version resulting in connections not being killed off properly.
I'll update the thread on Monday when there should have been some load to observe behaviour with new lowered Max Pool Size=20 for busy apps and 5 for the rest.
Any thoughts?
Cheers