一个很棘手的SQL锁问题

sniffer12345 2009-09-09 10:56:11
HIBERNATE中一个查询报错

SQL state [61000]; error code [4021];
ORA-04021: timeout occurred while waiting to lock object
; nested exception is java.sql.SQLException: ORA-04021: timeout
occurred while waiting to lock object

看起来是锁问题 alter.log也说了 会话210阻塞ID

但用PLSQL或者SQL PLUS 上去,执行跟HIBERNATE相同的SQL却能执行

杀了210的SESSION,再将进程也杀掉(系统级) 但还是没办法

由于是生产数据库 不能重启 现在真头痛啊
...全文
474 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xlfd2005 2009-09-10
  • 打赏
  • 举报
回复
单独执行sql不会有锁,是hibernate调用机制的问题
sxq129601 2009-09-10
  • 打赏
  • 举报
回复
SQL 没问题.当然要考虑你的hibernate
sniffer12345 2009-09-09
  • 打赏
  • 举报
回复
是的 在OEM中查看 依旧是它在阻塞
vc555 2009-09-09
  • 打赏
  • 举报
回复
是查询sql?
kill 210的session后,HIBERNATE再执行时是哪个session还在block
doer_ljy 2009-09-09
  • 打赏
  • 举报
回复
跟应用有关吧!
一个SQL问,自己把自己lock太有难度了。
所以把那个SQL拿出来执行当然不会有问题,我觉得问题出在基于HIBERNATE的应用上。
他肯定不知执行了一个SQL,而且很可能是在不同的事务内执行的。

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧