C# oracleConnection.close()不要在我的会话浏览器中关闭连接

C# oracleConnection.close()不要在我的会话浏览器中关闭连接,c#,oracle,C#,Oracle,我运行测试连接,我希望看到清晰的会话浏览器, 但在节目结束时,我在我的会话浏览器中看到了6个以上的会话 代码如下: private void testConnection() { string connectionString = "data source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=1111)(PORT=1699))(CONNECT_DATA =(SERVER = DEDICATED)(SE

我运行测试连接,我希望看到清晰的会话浏览器, 但在节目结束时,我在我的会话浏览器中看到了6个以上的会话

代码如下:

private void testConnection()        
{   
        string connectionString = "data source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=1111)(PORT=1699))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = abcd)));Min Pool Size=10; Connection Lifetime=120;";

        OracleConnection oraConn = new OracleConnection(connectionString);

        try
        {
            oraConn.Open();
        }

        catch (Exception e)
        {
        }

        finally
        {
            oraConn.Dispose();
            oraConn.Close();
        }

    }

我需要一个完全关闭会话的解决方案。

原因可能是连接池。从MSDN:

Close方法回滚所有挂起的事务。然后它发布 连接到连接池,或在以下情况下关闭连接: 连接池已禁用


因此,您的连接实例将在C#内被处理,但连接可能在池中保持打开状态,以便下次请求时可以快速提供新的打开连接实例。

您应该清除池:

 finally
    {
        oraConn.Dispose();
        oraConn.Close();
        OracleConnection.ClearPool(oraConn);
    }

连接关闭时是否有异常?为什么在会话浏览器中看到6行?因为连接池是多个连接的池,而不是单个连接。它保持几个开放的,以便它可以迅速提供他们。谢谢你的明确回答!但我们的DBA抱怨我的开放连接,因为它会导致数据库运行缓慢。。。。您有解决方案吗?????如果您愿意,可以禁用连接池,但我想您会发现它对数据库的整体性能没有影响。@user1012506这最好作为一个新问题提问。