程序是由 Java 执行的,有两、三个线程,同时执行以下的过程:
step1 事务开始
step2 Delete 表 A
step3 给表 A 加独占锁
step4 Delete 表 A
step5 Insert into 表 A
step6 提交事务
总是当某个线程执行到 step3 时 程序抛出:ORA-00060: 等待资源时检测到死锁
step1 事务开始
step2 Delete 表 A
step3 给表 A 加独占锁
step4 Delete 表 A
step5 Insert into 表 A
step6 提交事务
总是当某个线程执行到 step3 时 程序抛出:ORA-00060: 等待资源时检测到死锁
解决方案 »
- 通过COM+,DEXPRESS连接oracle,连接之后oracle,session里的username为空
- 求Oracle11G热备份脚本
- 请教:如何在PL/SQL dev中调试带有输入参数为数组的存储过程
- XML数据文件如何插入到table表
- 老师讲课不理解!请高手解答!
- 如何写这样的sql
- 一個簡單的sql
- sqlldr的control文件中为什么不能使用函数?50分
- 我想下载Oracle 8获8i,哪里有
- 急!急!请高手不吝赐教:我有database目录下的数据库文件,如何恢复数据库?
- oracle支持零宽断言正则表达式吗???
- oracle Date类型Insert 一个类似于0000/00/00的非法日期
这个锁的是全表还是记录
LOCK TABLE A IN EXCLUSIVE MODE
另外我试过,如果将 step2 和 step3 调换位置,就不会产生死锁了。
step1 事务开始
step2 Delete 表 A
--在这里提交一下看看应该就没事了
step3 给表 A 加独占锁
step4 Delete 表 A
step5 Insert into 表 A
step6 提交事务