【发布时间】:2012-12-07 15:16:30
【问题描述】:
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 配置。 使用的数据库是 MYSQL。
任何人都知道如何解决它..??
【问题讨论】:
-
优化查询,或增加事务超时。使用
show innodb status检查发生了什么; -
@SubinS 我没有在我的程序中使用自动提交,我认为我需要对代码持乐观态度。你能建议一些链接来帮助我设置 MySQL。我是这方面的初学者,所以需要一些帮助。我使用了“set innodb_lock_wait_timeout=100”,但是没有用。