如何避免锁定等待超时超出异常。
java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction 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。
任何人都知道如何解决它。
回答:
这里有一些建议:
- “ ”通常发生在事务正在等待要更新的数据行上,而该行已被某些其他事务锁定时。
- 在大多数情况下,问题出在数据库方面。可能的原因可能是表格设计不当,数据量大,约束等。
- 请查看这个详细的答案。
以上是 如何避免锁定等待超时超出异常。 的全部内容, 来源链接: utcz.com/qa/413541.html