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

Oracle是否自动回滚已放弃的会话?

  •  1
  • jthg  · 技术社区  · 14 年前

    有没有办法让Oracle在X时间段后自动回滚空闲会话?或者在我检测到连接丢失时回滚?

    根据我所做的实验,如果在应用程序进程提交之前终止它,那么行锁将永远保留,直到我登录到数据库并手动终止会话。

    谢谢。

    3 回复  |  直到 14 年前
        1
  •  2
  •   Peter Lang    14 年前

    尝试设置 SQLNET.EXPIRE_TIME sqlnet.ora .

    SQLNET.EXPIRE_TIME=10
    

    documentation :


    指定时间间隔(以分钟为单位)以发送检查以验证客户端/服务器连接是否处于活动状态。

        2
  •  1
  •   erikkallen    14 年前

    COMMIT inside finally可能是您应该做的最后一件事,因为您不应该(几乎)提交任何抛出异常的内容。

        3
  •  0
  •   bwawok    14 年前

    我不是DBA,所以我相信你能找到更好的解决方案。。。

    但有些僵局的情况似乎会发生,我们自己也无法挽回。我的上一个DBA有一个每分钟运行一次的进程,可以杀死任何运行超过10分钟的进程。