【问题标题】:ADO.NET for oracle doesn't close connections用于 oracle 的 ADO.NET 不会关闭连接
【发布时间】:2009-12-13 12:10:11
【问题描述】:

当使用 ADO.NET for oracle 从 .NET 应用程序连接到 oracle 服务器时,即使我关闭了连接,该连接在 Oracle 服务器上仍然处于非活动状态,因此由于每个用户的会话数限制,无法建立新连接,有什么方法可以确保所有连接都关闭?来自 Oracle 服务器或来自 .NET 应用程序。

提前致谢

【问题讨论】:

    标签: oracle connection database-connection


    【解决方案1】:

    会不会是因为connection pooling 而导致连接保持打开一段时间?您能否粘贴一些代码来显示您如何关闭连接?您还在使用 ODP.NET 还是 Microsoft 提供的类?

    您可以尝试关闭连接池(将 ;Pooling=false 添加到 ODP.NET 中的连接字符串中)以查看您的问题是否是由于使用它引起的(请注意,创建与数据库的新物理连接是一项昂贵的操作,因此您实际上可能不想永久关闭连接池)。

    【讨论】:

    • 谢谢,我关闭了池,但仍然出现同样的错误,但我在 .NET 3.5 中使用 microsoft 类(oracle 的 Microsoft 提供程序)这是 microsoft 提供程序的已知问题吗?还是我应该使用 ODP.NET?问候。
    • ODP.NET 客户端可以做的不仅仅是 MS 一,而 MS 一在 .NET 4.0 中已被弃用,因此建议迁移到 ODP.NET。为了进一步解决这个问题,我建议你粘贴一些示例代码。
    【解决方案2】:

    类似于:

    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);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-04
      • 2012-07-04
      • 2011-05-22
      • 2011-10-10
      • 2017-06-19
      • 1970-01-01
      相关资源
      最近更新 更多