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,再将进程也杀掉(系统级) 但还是没办法由于是生产数据库 不能重启 现在真头痛啊

解决方案 »

  1.   

    是查询sql?
    kill 210的session后,HIBERNATE再执行时是哪个session还在block
      

  2.   

    是的 在OEM中查看 依旧是它在阻塞
      

  3.   

    跟应用有关吧!
    一个SQL问,自己把自己lock太有难度了。
    所以把那个SQL拿出来执行当然不会有问题,我觉得问题出在基于HIBERNATE的应用上。
    他肯定不知执行了一个SQL,而且很可能是在不同的事务内执行的。
      

  4.   

    SQL 没问题.当然要考虑你的hibernate
      

  5.   

    单独执行sql不会有锁,是hibernate调用机制的问题