设为首页 加入收藏

TOP

[MySQL]生产环境MySQL数据库事务一直在RUNNING
2015-07-24 10:42:06 来源: 作者: 【 】 浏览:1
Tags:MySQL 生产 环境 数据库 事务 一直 RUNNING

前言:

运营人员反映,有一单子提交卡住了,页面一直没有返回。

1,刚开始怀疑是应用服务器或者db压力过高hang住了,马上去check应用服务器以及db的负载,看起来都OK,蛮低的,应该不是DB性能问题。

2,最后去看下是否是表锁住了,查看到有2个事务一直RUNNING,没有结束。,

mysql> select * from INNODB_TRX\G;

3,通过trx_mysql_thread_id: 1662332的去查询information_schema.processlist找到执行事务的客户端请求的SQL线程

4,通过SQL线程,找到应用程序的IP地址以及端口10.2xx.3.xx:23452

5,找到工程之后,再去查看tomcat的应用报错信息,如下:

--- Check the select ID, SHOP_NAME, SHOP_CLASSIFICATION_ID, LEGAL_PERSON, CORPORATION, SHOP_TEL, ADDRESS, ZIP_CODE, LEGAL_PERSON_MOBILE, STAT, AUTHENTICATE, CREDIT, LEVEL, SCORE, LICENSE_PATH, BUSSINESS_RANGE, MALL_ID, FLOOR, BIS_COMPANY, STORE_NO, MANAGER_NAME, MANAGER_TEL, BRIEF, LOGO, FAVOUR_NUM, HAS_WAREHOUSE, DESCRIPTION_FIT, SERVICE, SPEED, BACKGROUND, BIS_CONT_ID,BIS_SHOP_ID, CREATED_DATE, UPDATED_DATE,ENGLISH_PREF from SHOP where SHOP_NAME = ? .

6,现在很明显了,应该是事务未提交,配合开发去check所有的java代码,发现有2处地方,在Exception e里面忘记写rollback了。
} catch (SQLException e) {
}

总结:开发人员,写数据库事务的时候,记得在异常处理Exception的时候,别忘记了rollback。

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇MySQL高级技术-什么是存储过程? 下一篇Last_Errno: 1062,Last_Error: E..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·HyperText Transfer (2025-12-26 07:20:48)
·半小时搞懂 HTTP、HT (2025-12-26 07:20:42)
·CPython是什么?PyPy (2025-12-26 06:50:09)
·Python|如何安装seab (2025-12-26 06:50:06)
·python要学习数据分 (2025-12-26 06:50:03)