oracle锁表导致update,delete,insert出现无反应的问题
java項(xiàng)目中遇到更新,刪除等操作無反應(yīng)的問題,但后臺(tái)卻不報(bào)錯(cuò),也能正確打印sql語句。最終發(fā)現(xiàn)是oracle鎖表導(dǎo)致的。
解決方法:
1.查詢oracle數(shù)據(jù)庫被鎖的表
SELECT T1.ORACLE_USERNAME,T2.SID,T2.SERIAL#
FROM V$LOCKED_OBJECT T1, V$SESSION T2
WHERE T1.SESSION_ID = T2.SID
2.殺死該session
alter system kill session 'sid,serial#'? ? sid和serial#是上面查詢出來的字段(數(shù)字)
造成這個(gè)問題的原因估計(jì)是在pl/sql查詢數(shù)據(jù)時(shí)使用了for update(例如select * from user for update)
修改完數(shù)據(jù)但沒有提交就運(yùn)行java程序。而在運(yùn)行該程序時(shí)剛好又使用到了user這個(gè)表。但是在pl/sql中卻沒有提交事物(沒提交事物時(shí)表會(huì)處于鎖定狀態(tài))
,所以導(dǎo)致程序更新無反應(yīng)。
轉(zhuǎn)載于:https://www.cnblogs.com/suledule/p/10320487.html
總結(jié)
以上是生活随笔為你收集整理的oracle锁表导致update,delete,insert出现无反应的问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 力扣——机器人能否返回原点
- 下一篇: HTTP与抓包