zoukankan      html  css  js  c++  java
  • Tips&Tricks系列六:ADO.NET OracleConnection.ClearPool(conn)

    最近整理的都是一些小Tip,充数也发上来,希望对大家有所帮助。

    前几天在做一个功能时,需要创建一个临时的小数据库Schema,并在程序的最后将此Schema删除,在删除的时候总是提示“ORA-01940: cannot drop a user that is currently connected”,由于程序比较简单,我很确信自己已经关闭了所有连接,甚至Connection对象也都调用了Dispose()。

    后来怀疑是连接池机制造成的问题,查了一下资料:除非在connection string中明确说明,否则总是默认是启用连接池机制的。

    也就是说,当一个连接对象被关闭甚至Dispose(),它并未在物理上被释放,而是统一还给连接池保存,以便后续使用。这样在数据库里通过查询v$session视图,连接还是存在的。删除些用户时自然就会出现ORA-01940错误。

    解决的方法是调用静态方法OracleConnection.ClearPool(conn)清除连接池中的此连接。

  • 相关阅读:
    如何在Word中排出漂亮的代码
    html如何设置表格单元格内容垂直居中?
    Markdown&Latex学习笔记,qwq
    洛谷P1111
    洛谷 P4961
    线段树
    自我介绍&友链
    洛谷 P3367 【模板】并查集
    luogu P1074 靶形数独
    SPOJ简介。
  • 原文地址:https://www.cnblogs.com/morvenhuang/p/1562992.html
Copyright © 2011-2022 走看看