我們有ASP.NET應用程序連接到odp.net的oracle數據庫。Oracle連接不關閉
最近我們開始遇到一些性能問題。看起來Oracle連接不會關閉,並最終堆積起來,直到它崩潰我們的網站。
作爲第一步,我們做了代碼審查,並確保在執行後關閉所有打開的連接。
OracleConnection cn = Helpers.ConnectToDB();
try
{
cn.Open();
//do somtehing
}
catch (Exception ex)
{
//log error
}
finally
{
cn.Close();
cn.Dispose();
}
,但沒有幫助,每天幾個小時的連接堆積如山,崩潰我們的網站。
這裏是連接從昨天登錄:發生在14時27分44秒,然後重新啓動連接開始下拉申請後
TO_CHAR(DATE_TIME,'DD/MM/YYYY MACHINE STATUS CONNECTIONS
19/01/2012 14:40:03 WORKGROUP\OTH-IIS-1 ACTIVE 1
19/01/2012 14:38:00 WORKGROUP\OTH-IIS-1 ACTIVE 2
19/01/2012 14:35:57 WORKGROUP\OTH-IIS-1 ACTIVE 2
19/01/2012 14:34:55 WORKGROUP\OTH-IIS-1 ACTIVE 28
19/01/2012 14:33:54 WORKGROUP\OTH-IIS-1 ACTIVE 26
19/01/2012 14:31:51 WORKGROUP\OTH-IIS-1 ACTIVE 34
19/01/2012 14:30:49 WORKGROUP\OTH-IIS-1 ACTIVE 96
19/01/2012 14:29:47 WORKGROUP\OTH-IIS-1 ACTIVE 73
19/01/2012 14:28:46 WORKGROUP\OTH-IIS-1 ACTIVE 119
19/01/2012 14:27:44 WORKGROUP\OTH-IIS-1 ACTIVE 161
19/01/2012 14:26:43 WORKGROUP\OTH-IIS-1 ACTIVE 152
19/01/2012 14:25:41 WORKGROUP\OTH-IIS-1 ACTIVE 109
19/01/2012 14:24:40 WORKGROUP\OTH-IIS-1 ACTIVE 74
19/01/2012 14:23:38 WORKGROUP\OTH-IIS-1 ACTIVE 26
19/01/2012 14:22:36 WORKGROUP\OTH-IIS-1 ACTIVE 2
19/01/2012 14:21:35 WORKGROUP\OTH-IIS-1 ACTIVE 2
崩潰點。
我們使用連接字符串是:
<add name="OracleRead" connectionString="Data Source=xxx;User Id=yyy;Password=zzz;Max Pool Size=250;Connection Timeout=160;" providerName="Oracle.DataAccess"/>
那麼這裏的問題是什麼?
我們需要定義或更改這些屬性中的一種:
Connection Lifetime, Decr Pool Size, Max Pool Size, Min Pool Size?
什麼是在這種情況下建議的設置?
你連接實際上沒有「Pooling = True;」,它甚至使用連接池?你有沒有嘗試過「Pooling = True」在連接字符串中。 –
Pooling = True是默認值 –
您是否設法解決這個問題? – Robbie