oracle鎖表導致update,delete,insert出現無反應的問題


java項目中遇到更新,刪除等操作無反應的問題,但后台卻不報錯,也能正確打印sql語句。最終發現是oracle鎖表導致的。

解決方法:

1.查詢oracle數據庫被鎖的表

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#是上面查詢出來的字段(數字)

造成這個問題的原因估計是在pl/sql查詢數據時使用了for update(例如select * from user for update)

修改完數據但沒有提交就運行java程序。而在運行該程序時剛好又使用到了user這個表。但是在pl/sql中卻沒有提交事物(沒提交事物時表會處於鎖定狀態)

,所以導致程序更新無反應。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM