【发布时间】:2009-12-13 12:10:11
【问题描述】:
当使用 ADO.NET for oracle 从 .NET 应用程序连接到 oracle 服务器时,即使我关闭了连接,该连接在 Oracle 服务器上仍然处于非活动状态,因此由于每个用户的会话数限制,无法建立新连接,有什么方法可以确保所有连接都关闭?来自 Oracle 服务器或来自 .NET 应用程序。
提前致谢
【问题讨论】:
标签: oracle connection database-connection
当使用 ADO.NET for oracle 从 .NET 应用程序连接到 oracle 服务器时,即使我关闭了连接,该连接在 Oracle 服务器上仍然处于非活动状态,因此由于每个用户的会话数限制,无法建立新连接,有什么方法可以确保所有连接都关闭?来自 Oracle 服务器或来自 .NET 应用程序。
提前致谢
【问题讨论】:
标签: oracle connection database-connection
会不会是因为connection pooling 而导致连接保持打开一段时间?您能否粘贴一些代码来显示您如何关闭连接?您还在使用 ODP.NET 还是 Microsoft 提供的类?
您可以尝试关闭连接池(将 ;Pooling=false 添加到 ODP.NET 中的连接字符串中)以查看您的问题是否是由于使用它引起的(请注意,创建与数据库的新物理连接是一项昂贵的操作,因此您实际上可能不想永久关闭连接池)。
【讨论】:
类似于:
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);
}
}
【讨论】: