jt-20180528 / pro_document_mycat

项目文档记录,一些技术栈预研文档
2 stars 1 forks source link

进行高并发投注时,出现数据库锁等待异常 #9

Open lujunGit opened 6 years ago

lujunGit commented 6 years ago

2018-07-06 16:49:41,231 [DESKTOP-1LO98I2-20881] [] [] [Thread-31460] ERROR druid.sql.Statement - {conn-10011, pstmt-71239} execute error. UPDATE T_CHASE_ORDER cr SET cr.BETTED_AMOUNT = cr.BETTED_AMOUNT + ?, cr.ISSUE_LEAVE = cr.ISSUE_LEAVE - 1 WHERE cr.id = ? and cr.status='0' AND cr.ISSUE_LEAVE > 0 com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

lujunGit commented 6 years ago

2018-07-06 16:49:41,256 [DESKTOP-1LO98I2-20881] [] [] [Thread-31460] WARN org.hibernate.engine.jdbc.spi.SqlExceptionHelper - SQL Error: 1205, SQLState: 40001 2018-07-06 16:49:41,256 [DESKTOP-1LO98I2-20881] [] [] [Thread-31460] ERROR org.hibernate.engine.jdbc.spi.SqlExceptionHelper - Lock wait timeout exceeded; try restarting transaction 2018-07-06 16:49:41,584 [DESKTOP-1LO98I2-20881] [] [] [Thread-31460] ERROR com.hitler.service.chase.ChaseIssueService - [追号投注]追号异常:追号期号:30,追号单号:7 org.springframework.dao.CannotAcquireLockException: could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.LockAcquisitionException: could not execute statement at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:250) at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:225) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:436) at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:59) at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:213)

lujunGit commented 6 years ago

at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:655) at com.hitler.service.chase.ChaseIssueService$$EnhancerBySpringCGLIB$$854e2f3c.betChase() at com.hitler.lottery.event.OpenEvent$SchemaOpenEvent.run(OpenEvent.java:149) at java.lang.Thread.run(Thread.java:748)

lujunGit commented 6 years ago

2018-07-06 16:49:41,590 [DESKTOP-1LO98I2-20881] [] [] [Thread-31460] ERROR druid.sql.Statement - {conn-10011, pstmt-71284} execute error. UPDATE T_CHASE_ORDER cr SET cr.BETTED_AMOUNT = cr.BETTED_AMOUNT + ?, cr.ISSUE_LEAVE = cr.ISSUE_LEAVE - 1 WHERE cr.id = ? and cr.status='0' AND cr.ISSUE_LEAVE > 0 java.sql.SQLException: Transaction error, need to rollback. errno:1205 Lock wait timeout exceeded; try restarting transaction at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:959) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3870) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3806)

lujunGit commented 5 years ago

代码问题,更新代码之后,问题解决