8

我运行测试连接,我希望看到清晰的会话浏览器,但在程序结束时,我在会话浏览器中看到超过 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();
        }

    }

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

4

2 回答 2

10

您应该清除池:

 finally
    {
        oraConn.Dispose();
        oraConn.Close();
        OracleConnection.ClearPool(oraConn);
    }
于 2015-02-19T09:56:08.387 回答
3

原因可能是连接池。来自 MSDN:

OracleConnection.Close 方法

Close 方法回滚任何挂起的事务。然后它释放到连接池的连接,或者如果连接池被禁用,则关闭连接。

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

于 2012-11-01T14:14:55.150 回答