使用ADO.NET for Oracle從.NET應用程序連接到Oracle服務器時,即使我關閉了連接,連接仍然在Oracle服務器上保持非活動狀態,因此新連接無法由於每個用戶的會話限制而建立,是否有任何方法可以確保所有連接都關閉?從Oracle服務器或.NET應用程序。用於oracle的ADO.NET不會關閉連接
在此先感謝
使用ADO.NET for Oracle從.NET應用程序連接到Oracle服務器時,即使我關閉了連接,連接仍然在Oracle服務器上保持非活動狀態,因此新連接無法由於每個用戶的會話限制而建立,是否有任何方法可以確保所有連接都關閉?從Oracle服務器或.NET應用程序。用於oracle的ADO.NET不會關閉連接
在此先感謝
也可能是連接仍然開放了一段時間,由於connection pooling?你能否貼一些代碼來說明你如何關閉連接?你是否也使用ODP.NET或Microsoft提供的類?
您可以嘗試關閉連接池(將ODP.NET中的連接字符串添加;Pooling=false
),以查看您的問題是否是由於使用它而導致的(請注意,創建到數據庫的新物理連接是一個昂貴的操作,所以你可能實際上不希望關閉連接池)。
類似的東西來:
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);
}
}
謝謝, 我轉過身池關閉,但仍然得到了同樣的錯誤,但我在.NET 3.5(微軟提供程序的Oracle)使用Microsoft類是一個已知問題微軟提供商?或者我應該使用ODP.NET? 此致敬禮。 – 2009-12-14 13:36:21
ODP.NET客戶端可以做的不僅僅是MS,而且MS .NET在.NET 4.0中不推薦使用,因此建議使用ODP.NET。爲了進一步解決這個問題,雖然我建議你粘貼一些示例代碼。 – RichardOD 2009-12-14 14:16:02