代码之家  ›  专栏  ›  技术社区  ›  Phreneticus

程序崩溃时如何避免连接泄漏

  •  3
  • Phreneticus  · 技术社区  · 8 年前

    当然,这种崩溃本来就不应该发生,但令人非常不满意的是,这导致了连接泄漏,如果仍有太多连接打开,我现在必须告诉DBA手动终止JDBC会话。

    1 回复  |  直到 8 年前
        1
  •  1
  •   DanK    8 年前

    通过提升权限,您可能可以在查询 V$SESSION 查看并尝试查找挂起的会话,以便可以使用 JDBC (注意,我之所以说可能是因为我不能保证JDBC驱动程序中存在这样的命令——事实上可能不是这样)。但我认为这将是严重的过度杀伤力。

    我认为更好的选择是使用Oracle的会话管理工具从数据库方面解决这个问题。设置 IDLE_TIME 您要连接到的用户配置文件中的参数不是 UNLIMITED 这样Oracle就会自动 SNIPES (终止)在指定时间段内空闲的任何连接。和你的DBA谈谈,他们应该可以为你设置这个。。。这是一个相当简单的调整(不过请记住,您还需要 RESOURCE_LIMIT 数据库参数设置为 TRUE 空闲时间