ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cmose <cjm...@gmail.com>
Subject Re: [JDBC type = ARRAY / Java type = ?] Deadlock found when trying to get lock (MySQL 5.0 with innodb)
Date Thu, 22 Feb 2007 15:16:01 GMT

Did no one ever find a solution to this? I'm getting it left and right when
an application crashes and is then restarted... Any advice would be greatly
appreciated!


Chun Wei Ho wrote:
> 
> Hi!
> 
> We are using apache ibatis with our MySQL 5.0 database (using innodb
> tables), in our web application running on Tomcat 5. Recently we
> started getting a number of errors relating to
> java.sql.SQLException: Deadlock found when trying to get lock; Try
> restarting transaction message from server: "Lock wait timeout
> exceeded; try restarting transaction";
> 
> We get such errors generally on inserts or updates while applying a
> parameter map - see full exception dump below. It takes a tomcat/web
> application restart to fix the problem. We've checked "SHOW INNODB
> STATUS" on our database and it does not show any deadlock errors (no
> LAST DEADLOCK ERROR section).
> 
> We would appreciate any suggestions or ideas you have to fix or
> alleviate this problem. Thanks :)
> 
> 
> Full exception dump:
> note: my.application.* is our application code
> 
> 2006-12-08 23:48:32,347 ERROR [TP-Processor24]
> servlet.FrameworkServlet (FrameworkServlet.java:412) - Could not
> complete request
> org.springframework.jdbc.UncategorizedSQLException: SqlMapClient
> operation; uncategorized SQLException for SQL []; SQL state [41000];
> error code [1205];
> --- The error occurred in
> my/application/engine/dao/ibatis/maps/Section.xml.
> --- The error occurred while applying a parameter map.
> --- Check the updateSectionExperience-InlineParameterMap.
> --- Check the statement (update failed).
> --- Cause: java.sql.SQLException: Deadlock found when trying to get
> lock; Try restarting transaction message from server: "Lock wait
> timeout exceeded; try restarting transaction"; nested exception is
> com.ibatis.common.jdbc.exception.NestedSQLException:
> --- The error occurred in
> my/application/engine/dao/ibatis/maps/Section.xml.
> --- The error occurred while applying a parameter map.
> --- Check the updateSectionExperience-InlineParameterMap.
> --- Check the statement (update failed).
> --- Cause: java.sql.SQLException: Deadlock found when trying to get
> lock; Try restarting transaction message from server: "Lock wait
> timeout exceeded; try restarting transaction"
> com.ibatis.common.jdbc.exception.NestedSQLException:
> --- The error occurred in
> my/application/engine/dao/ibatis/maps/Section.xml.
> --- The error occurred while applying a parameter map.
> --- Check the updateSectionExperience-InlineParameterMap.
> --- Check the statement (update failed).
> --- Cause: java.sql.SQLException: Deadlock found when trying to get
> lock; Try restarting transaction message from server: "Lock wait
> timeout exceeded; try restarting transaction"
> Caused by: java.sql.SQLException: Deadlock found when trying to get
> lock; Try restarting transaction message from server: "Lock wait
> timeout exceeded; try restarting transaction"
> 	at
> com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:91)
> 	at
> com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.update(SqlMapExecutorDelegate.java:500)
> 	at
> com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.update(SqlMapSessionImpl.java:85)
> 	at
> com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.update(SqlMapClientImpl.java:62)
> 	at
> org.springframework.orm.ibatis.SqlMapClientTemplate$10.doInSqlMapClient(SqlMapClientTemplate.java:329)
> 	at
> org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:165)
> 	at
> org.springframework.orm.ibatis.SqlMapClientTemplate.update(SqlMapClientTemplate.java:327)
> 	at
> org.springframework.orm.ibatis.SqlMapClientTemplate.update(SqlMapClientTemplate.java:349)
> 	at
> my.application.engine.dao.ibatis.SqlMapSectionDao.updateSectionExperience(Unknown
> Source)
> 	at
> my.application.engine.domain.logic.SystemImpl.updateSectionExperience(Unknown
> Source)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:585)
> 	at
> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:335)
> 	at
> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:181)
> 	at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
> 	at
> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
> 	at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
> 	at
> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
> 	at $Proxy0.updateSectionExperience(Unknown Source)
> 	at my.application.engine.web.SectionFormController.processFinish(Unknown
> Source)
> 	at
> org.springframework.web.servlet.mvc.AbstractWizardFormController.validatePagesAndFinish(AbstractWizardFormController.java:667)
> 	at
> org.springframework.web.servlet.mvc.AbstractWizardFormController.processFormSubmission(AbstractWizardFormController.java:490)
> 	at
> org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:259)
> 	at
> org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:139)
> 	at
> org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
> 	at
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:717)
> 	at
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:658)
> 	at
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:392)
> 	at
> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:357)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> 	at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
> 	at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> 	at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> 	at
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
> 	at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
> 	at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> 	at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> 	at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
> 	at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> 	at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
> 	at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
> 	at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> 	at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> 	at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> 	at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> 	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
> 	at
> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
> 	at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
> 	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
> 	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
> 	at
> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
> 	at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
> 	at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> 	at java.lang.Thread.run(Thread.java:595)
> Caused by: java.sql.SQLException: Deadlock found when trying to get
> lock; Try restarting transaction message from server: "Lock wait
> timeout exceeded; try restarting transaction"
> 	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1997)
> 	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1167)
> 	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1278)
> 	at com.mysql.jdbc.Connection.execSQL(Connection.java:2247)
> 	at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1371)
> 	at
> org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:168)
> 	at sun.reflect.GeneratedMethodAccessor40.invoke(Unknown Source)
> 	at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:585)
> 	at
> com.ibatis.common.jdbc.logging.PreparedStatementLogProxy.invoke(PreparedStatementLogProxy.java:62)
> 	at $Proxy3.execute(Unknown Source)
> 	at
> com.ibatis.sqlmap.engine.execution.SqlExecutor.executeUpdate(SqlExecutor.java:84)
> 	at
> com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteUpdate(GeneralStatement.java:200)
> 	at
> com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:78)
> 	... 58 more
> 
> Caused by:
> java.sql.SQLException: Deadlock found when trying to get lock; Try
> restarting transaction message from server: "Lock wait timeout
> exceeded; try restarting transaction"
> 	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1997)
> 	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1167)
> 	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1278)
> 	at com.mysql.jdbc.Connection.execSQL(Connection.java:2247)
> 	at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1371)
> 	at
> org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:168)
> 	at sun.reflect.GeneratedMethodAccessor40.invoke(Unknown Source)
> 	at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:585)
> 	at
> com.ibatis.common.jdbc.logging.PreparedStatementLogProxy.invoke(PreparedStatementLogProxy.java:62)
> 	at $Proxy3.execute(Unknown Source)
> 	at
> com.ibatis.sqlmap.engine.execution.SqlExecutor.executeUpdate(SqlExecutor.java:84)
> 	at
> com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteUpdate(GeneralStatement.java:200)
> 	at
> com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:78)
> 	at
> com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.update(SqlMapExecutorDelegate.java:500)
> 	at
> com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.update(SqlMapSessionImpl.java:85)
> 	at
> com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.update(SqlMapClientImpl.java:62)
> 	at
> org.springframework.orm.ibatis.SqlMapClientTemplate$10.doInSqlMapClient(SqlMapClientTemplate.java:329)
> 	at
> org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:165)
> 	at
> org.springframework.orm.ibatis.SqlMapClientTemplate.update(SqlMapClientTemplate.java:327)
> 	at
> org.springframework.orm.ibatis.SqlMapClientTemplate.update(SqlMapClientTemplate.java:349)
> 	at
> my.application.engine.dao.ibatis.SqlMapSectionDao.updateSectionExperience(Unknown
> Source)
> 	at
> my.application.engine.domain.logic.SystemImpl.updateSectionExperience(Unknown
> Source)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:585)
> 	at
> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:335)
> 	at
> org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:181)
> 	at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:148)
> 	at
> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
> 	at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:170)
> 	at
> org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:176)
> 	at $Proxy0.updateSectionExperience(Unknown Source)
> 	at my.application.engine.web.SectionFormController.processFinish(Unknown
> Source)
> 	at
> org.springframework.web.servlet.mvc.AbstractWizardFormController.validatePagesAndFinish(AbstractWizardFormController.java:667)
> 	at
> org.springframework.web.servlet.mvc.AbstractWizardFormController.processFormSubmission(AbstractWizardFormController.java:490)
> 	at
> org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:259)
> 	at
> org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:139)
> 	at
> org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
> 	at
> org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:717)
> 	at
> org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:658)
> 	at
> org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:392)
> 	at
> org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:357)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> 	at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
> 	at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> 	at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> 	at
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
> 	at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
> 	at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> 	at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> 	at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
> 	at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> 	at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
> 	at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
> 	at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> 	at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> 	at
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
> 	at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
> 	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
> 	at
> org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
> 	at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:300)
> 	at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:374)
> 	at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:743)
> 	at
> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:675)
> 	at org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:866)
> 	at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> 	at java.lang.Thread.run(Thread.java:595)
> 
> 

-- 
View this message in context: http://www.nabble.com/Deadlock-found-when-trying-to-get-lock-%28MySQL-5.0-with-innodb%29-tf2792164.html#a9101651
Sent from the iBATIS - User - Java mailing list archive at Nabble.com.


Mime
View raw message