有什么方法可以保证应用程序不会在Oracle中释放行锁吗?如果我确保将commit语句放在finally块中,则可以处理意外错误的情况,但是如果应用程序进程在提交前突然死亡(或有人将电源线/局域网电缆踢出),该怎么办。
有没有办法让Oracle在X时间后自动回滚空闲会话?还是在我以某种方式检测到连接丢失时回滚?
根据我所做的实验,如果我在提交某个应用程序进程之前终止了该进程,则行锁将永久保留,直到我登录数据库并手动终止该会话为止。
谢谢。
最佳答案
尝试在SQLNET.EXPIRE_TIME
中设置sqlnet.ora
。
SQLNET.EXPIRE_TIME=10
从documentation:
目的
指定时间间隔(以分钟为单位),以发送检查以验证客户端/服务器连接处于活动状态。