運(yùn)營(yíng)人員反映,有一單子提交卡住了,頁(yè)面一直沒(méi)有返回。
1,剛開(kāi)始懷疑是應(yīng)用服務(wù)器或者db壓力過(guò)高h(yuǎn)ang住了,馬上去check應(yīng)用服務(wù)器以及db的負(fù)載,看起來(lái)都OK,蠻低的,應(yīng)該不是DB性能問(wèn)題。
2,最后去看下是否是表鎖住了,查看到有2個(gè)事務(wù)一直RUNNING,沒(méi)有結(jié)束。,
mysql> select * from INNODB_TRX\G;
3,通過(guò)trx_mysql_thread_id: 1662332的去查詢(xún)information_schema.processlist找到執(zhí)行事務(wù)的客戶(hù)端請(qǐng)求的SQL線程
4,通過(guò)SQL線程,找到應(yīng)用程序的IP地址以及端口10.2xx.3.xx:23452
5,找到工程之后,再去查看tomcat的應(yīng)用報(bào)錯(cuò)信息,如下:
--- 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,現(xiàn)在很明顯了,應(yīng)該是事務(wù)未提交,配合開(kāi)發(fā)去check所有的java代碼,發(fā)現(xiàn)有2處地方,在Exception e里面忘記寫(xiě)rollback了。
} catch (SQLException e) {
}
總結(jié):開(kāi)發(fā)人員,寫(xiě)數(shù)據(jù)庫(kù)事務(wù)的時(shí)候,記得在異常處理Exception的時(shí)候,別忘記了rollback。
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com