你发出关闭连接命令后,oracle自身有一套机制管理连接和释放,不会发生系统死锁的。

解决方案 »

  1.   

    to zwztu
    可以解释一下为何用oledb连接时关闭,oracle的会话要过一段时间才会杀掉,而其它的方式会马上杀掉呢??
      

  2.   

    ole关闭了,但是它只是在你本机上把连接断了,oracle数据库的服务器自己有一套关闭方式(因为有些东西需要通过客户端传回去),好象是要等10来sec才关闭。这段时间内连接继续占用双方端口。任何数据库用程序连接在这方面都是一样的不会立即关闭
      

  3.   

    用close方法只是关闭了到数据库的连接!!
    但Connection对象仍然存在!!
    你可以使用myConnection.Dispose()方法销毁Connection对象!!
      

  4.   

    我试过了,如果用oledb的方式,大概要过一两分钟才能关闭会话,用Dispose()也一样!如果用API的话,一关掉连接马上就关闭会话了!是不是因为连接缓冲池的原因呢??
      

  5.   

    实验一下solserver,有没有此问题呀???
    微软没有反混罢!!!学习 学习 在学习!!
      

  6.   

    我刚解决这个问题,呵呵数据库连接是比较消耗资源的,所以要尽可能的减少创建数据库连接的次数。.net有一个连接缓冲池,当你释放一个连接时,并不会直接释放,而是放到连接缓冲池中,过一定时间后如果连接没有被再次使用,就会被释放,而这个时间可以在连接字中设置例如:"User Id=scott;Password=tiger;Data Source = webser;Max Pool Size = 10;Min Pool Size = 1;Incr Pool Size = 3;Decr Pool Size = 2;";如果connect.open()之后访问数据库出现错误,就会造成数据库连接泄漏,所以最好用try---catch---finally