java.sql.sqlException: Lock wait timeout exceeded; try restarting tra nsaction at com.MysqL.jdbc.sqlError.createsqlException(sqlError.java:1055) at com.MysqL.jdbc.sqlError.createsqlException(sqlError.java:956) at com.MysqL.jdbc.MysqLIO.checkErrorPacket(MysqLIO.java:3558) at com.MysqL.jdbc.MysqLIO.checkErrorPacket(MysqLIO.java:3490) at com.MysqL.jdbc.MysqLIO.sendCommand(MysqLIO.java:1959) at com.MysqL.jdbc.MysqLIO.sqlQueryDirect(MysqLIO.java:2109) at com.MysqL.jdbc.ConnectionImpl.execsql(ConnectionImpl.java:2648) at com.MysqL.jdbc.PreparedStatement.executeInternal(PreparedStatement.ja va:2077) at com.MysqL.jdbc.PreparedStatement.executeQuery(PreparedStatement.java: 2228) at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java: 208) at org.hibernate.loader.Loader.getResultSet(Loader.java:1812) at org.hibernate.loader.Loader.doQuery(Loader.java:697) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Lo ader.java:259) at org.hibernate.loader.Loader.loadEntity(Loader.java:1885) ... 131 more
当我更新记录时,我越来越多地重复锁定超时超出异常.
我正在使用Java Struts 2.1 Hibernate配置.
使用的DB是MysqL.
任何人知道如何解决它?
解决方法
这里有一些建议:
>“锁定等待超时”通常发生在事务正在等待数据行更新已经被某些其他事务锁定的情况下.
大多数时候,问题出在数据库方面.可能的原因可能是不适当的表设计,大量的数据,约束等.
>请查看这个elaborate answer.