2009-11-24 136 views
1

什麼是處理連接池與Oracle 11g和asp.net的最佳方式,我遇到了以下問題:Oracle拒絕爲Web應用程序打開任何新連接後而。Oracle 11g上的連接池w/asp.net

這會導致請求超時並排隊。

編輯: 這有什麼,我需要在Oracle中做微調呢?

+0

您確定您正在積極銷燬代碼中的所有連接,例如通過使用using語句嗎? – 2009-11-24 15:34:23

+0

是的。 oConn.Close(),.追蹤/查看開放連接的數量是否有某種程度? – hminaya 2009-11-24 15:54:46

+0

您使用哪個數據庫提供程序? ODP.net,devart,dotconnect,微軟的Oracle供應商? – tuinstoel 2009-11-24 18:48:44

回答

0

關閉連接是您所需要做的。該框架應該處理所有的池。

+0

我已經這樣做了,我關閉了所有連接。 – hminaya 2009-11-24 15:54:03

+1

您可以嘗試odp.net性能計數器。 – 2009-11-24 20:17:24

0

查詢v $會話將顯示所有未完成的會話。 您有多少個連接,您嘗試創建/斷開連接的速度有多快?共享服務器是讓多個終端客戶端共享有限數量的連接的一種機制。

+0

我在那裏看到數百個會話。但我在哪裏定義/控制它? – hminaya 2009-11-24 22:36:50

2

由於您沒有提及您的Oracle配置,因此很難告訴您第一個操作步驟,因此您需要澄清您有多少個會話。

SELECT username, count(1) FROM v$session GROUP BY username; 

Oracle的最大值由「PROCESSES」實例參數控制。默認值可能是150.你可能會嘗試爲300個左右的OLTP Web應用程序,但是,如果你有泄漏,它只會推遲不可避免的。但檢查PROCESSES至少與您的Oracle ADO連接字符串的「Max Pool Size」設置一樣大。我認爲,默認的11g ODP.NET是100。