2009-12-13 26 views
1

使用ADO.NET for Oracle從.NET應用程序連接到Oracle服務器時,即使我關閉了連接,連接仍然在Oracle服務器上保持非活動狀態,因此新連接無法由於每個用戶的會話限制而建立,是否有任何方法可以確保所有連接都關閉?從Oracle服務器或.NET應用程序。用於oracle的ADO.NET不會關閉連接

在此先感謝

回答

5

也可能是連接仍然開放了一段時間,由於connection pooling?你能否貼一些代碼來說明你如何關閉連接?你是否也使用ODP.NET或Microsoft提供的類?

您可以嘗試關閉連接池(將ODP.NET中的連接字符串添加;Pooling=false),以查看您的問題是否是由於使用它而導致的(請注意,創建到數據庫的新物理連接是一個昂貴的操作,所以你可能實際上不希望關閉連接池)。

+0

謝謝, 我轉過身池關閉,但仍然得到了同樣的錯誤,但我在.NET 3.5(微軟提供程序的Oracle)使用Microsoft類是一個已知問題微軟提供商?或者我應該使用ODP.NET? 此致敬禮。 – 2009-12-14 13:36:21

+2

ODP.NET客戶端可以做的不僅僅是MS,而且MS .NET在.NET 4.0中不推薦使用,因此建議使用ODP.NET。爲了進一步解決這個問題,雖然我建議你粘貼一些示例代碼。 – RichardOD 2009-12-14 14:16:02

0

類似的東西來:

using (OracleConnection connection = new OracleConnection(connectionString)) 
{ 
    OracleCommand command = new OracleCommand(queryString); 
    command.Connection = connection; 
    try 
    { 
     connection.Open(); 
     command.ExecuteNonQuery(); 
    } 
    catch (Exception ex) 
    { 
     Console.WriteLine(ex.Message); 
    } 
}