最近开发的应用开始做性能测试。在小于80用户并发的时候一切OK,并发量到100用户时,持续压5分钟。应用开始报错,并且只有1次错误,持续时间长,比如10分钟,会报3次。

日志如下:

Caused by: com.ibatis.common.jdbc.exception.NestedSQLException:

--- The error occurred in DomainSQL.xml.

--- The error occurred while applying a parameter map.

--- Check the contact.addContact-InlineParameterMap.

--- Check the statement (update failed).

--- Cause: java.sql.SQLException: 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.insert(SqlMapExecutorDelegate.java:447)

at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.insert(SqlMapSessionImpl.java:82)

at org.springframework.orm.ibatis.SqlMapClientTemplate$8.doInSqlMapClient(SqlMapClientTemplate.java:366)

at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:200)

... 82 more

Caused by: java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction

at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3597)

at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3529)

at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1990)

at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2151)

at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2625)

at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2119)

at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1362)

at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:168)

at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeUpdate(SqlExecutor.java:81)

at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteUpdate(GeneralStatement.java:200)

at com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeUpdate(GeneralStatement.java:78)

... 86 more

MySQl数据库是InnoDB模式。

报错的方法:addContact,执行的是Insert语句, 查了一下,据怀疑是操作的表被其他线程锁定,引起插入超时。

检查代码该表的操作有select,insert,update操作,update是根据主键进行的。 select有关联其他表做查询,但确认没有 “for update ”。 郁闷中,不知道什么原因了?希望能得到点线索。谢谢

有两个疑问:

1.Lock wait timeout exceeded; try restarting transaction 是什么原因造成的?

2.MySQl数据库是INNODB模式,默认是行级锁,什么情况下会出现锁表呢?

2011年11月29日 19:22

mysql 中lock wait_应用中MYSQL 报错Lock wait timeout exceeded; try restarting transaction相关推荐

  1. 关于MySQL出现`lock wait timeout exceeded; try restarting transaction` 的解决方案

    关于MySQL出现lock wait timeout exceeded; try restarting transaction 的解决方案. 一.问题抛出 在做查询语句时,MySQL 抛出了这样的异常 ...

  2. 关于MySQL出现锁等待lock wait timeout exceeded; try restarting transaction 的解决方案

    关于MySQL出现lock wait timeout exceeded; try restarting transaction 的解决方案. 一.问题抛出 在做查询语句时,MySQL 抛出了这样的异常 ...

  3. 排查mysql innodb Lock wait timeout exceeded; try restarting transaction的问题

    转载自:https://www.cnblogs.com/piperck/p/6212524.html OMG写的时候崩溃了一次. 触发关注这个问题的事情是 我们在使用pt-online-schedul ...

  4. mysql死锁释放时间参数_【Mysql】mysql 事务未提交导致死锁 Lock wait timeout exceeded; try restarting transaction 解决办法...

    问题场景 问题出现环境: 1.在同一事务内先后对同一条数据进行插入和更新操作: 2.多台服务器操作同一数据库: 3.瞬时出现高并发现象: 不断的有一下异常抛出,异常信息: org.springfram ...

  5. mysql 锁 启动失败_关于mysql锁的错误Lock wait timeout exceeded; try restarting transaction 【求解】...

    2020-03-13 18:44:18 | INFO | http-nio-8085-exec-10 | com.newretail.hospital.controller.HAdviceContro ...

  6. MySQL -- Lock wait timeout exceeded; try restarting transaction参数控制

    Lock wait timeout exceeded; try restarting transaction 锁等待超时..回滚事务.. 当事务1  获得锁 start TRANSACTION upd ...

  7. ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

    前言:朋友咨询我说执行简单的update语句失效,症状如下: mysql> update order_info  set province_id=15  ,city_id= 1667  wher ...

  8. 【问题解决:死锁】Lock wait timeout exceeded; try restarting transaction的问题

    执行数据删除操作时一直超时并弹出Lock wait timeout exceeded; try restarting transaction错误 解决办法 1.先查看数据库的事务隔离级别 select ...

  9. Lock wait timeout exceeded; try restarting transaction

    排查过程: 查看数据库 INNODB_LOCKS,未发现有死锁的记录. 查看 SHOW PROCESSLIST; 也未见异常进程: 通过Mysql的控制台,查询慢日志,也未找到有关此表的Mysql慢日 ...

最新文章

  1. 一个Apache CollectionUtils.intersection 方法的简单问题
  2. poj 1737男人八题之一 orz ltc
  3. java 并发编程 aqs_Java并发编程之AQS
  4. java11开源中国,Java 11 正式发布!
  5. (王道408考研数据结构)第二章线性表-第一节:线性表的定义和基本操作
  6. 深度残差收缩网络:(六)代码实现
  7. 【BZOJ1040】【codevs1423】骑士,第一次的基环外向树DP
  8. 【推荐实践】爱奇艺推荐中台探索与实践
  9. 适应关键业务环境的加湿系统
  10. 利用深度学习从单个损伤和斑点中识别植物病害
  11. bzoj 3752: Hack 预处理+暴力dfs
  12. 0x00007FF872444FD9 处(位于 Project1.exe 中)有未经处理的异常: Microsoft C++ 异常: cv::Exception,位于内存位置 0x000000F11
  13. Ddos攻击怎么防护?DDOS八大防御策略
  14. 禅宗公案 艾舍尔的画与哥德尔定理——哥德尔逻辑与哲学之2
  15. 迪斯科算法_为什么迪斯科极乐世界如此可重播
  16. 利用Python爬取音乐资源,小白福音
  17. matlab三点确定抛物线,[转]matlab编写的进退法,黄金分割法,抛物线法(二次插值法),wolfe不精确一维搜索...
  18. 通达信公式改写成python代码的最简实现方式
  19. JavaScript ES12新特性抢先体验
  20. vi/vim简介及使用教程

热门文章

  1. Python 中文注释报错解决方法
  2. 云计算,能回答地球最终流浪到哪里吗?
  3. FE.ES-终结0.1+0.2,答到点上的那种
  4. 批量管理服务器,批量分发文件
  5. 用 Docker 构建、运行、发布来一个 Spring Boot 应用
  6. ZooKeeper的事务日志和快照
  7. 非托管资源在虚拟机中的管理
  8. 成为一流CSS设计师的8大技巧
  9. jsp定义一个变量在html,jsp中变量及方法的声明与使用说明
  10. python 跳过迭代_Python迭代和解析(4):自定义迭代器