C# oracleConnection.close()不要在我的会话浏览器中关闭连接
我运行测试连接,我希望看到清晰的会话浏览器, 但在节目结束时,我在我的会话浏览器中看到了6个以上的会话 代码如下: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
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这最好作为一个新问题提问。