Lock wait timeout exceeded; try restarting transaction
粗心大意,老犯錯(cuò)!
今天上午在調(diào)試EJB3調(diào)用WebService時(shí)一直遇到MySQL報(bào)出的這個(gè)問(wèn)題。郁悶壞了,只是執(zhí)行了一句update而已,就導(dǎo)致這樣錯(cuò)誤… …
經(jīng)過(guò)半個(gè)小時(shí)排查,終于找到問(wèn)題所在了。原因是分布式事務(wù)引起的。
場(chǎng)景描述:
EJB3操作A表-->調(diào)用WebService-->WebService操作B表
在操作A表的時(shí)候需要等待WebService的調(diào)用,如果沒(méi)有異常,則可以提交事務(wù),如果出現(xiàn)異常,則不能提交事務(wù);
在操作B表的時(shí)候需要處理異常;
一個(gè)簡(jiǎn)單的分布式事務(wù),一般情況下是沒(méi)有問(wèn)題的~但是由于我的粗心大意,做成了EJB3也在操作B表,這樣就導(dǎo)致了表被鎖死的情況出現(xiàn)~真是郁悶啊!
客戶(hù)虐我千百遍,我待客戶(hù)如初戀!
posted on 2009-04-23 21:41 阿南 閱讀(4298) 評(píng)論(0) 編輯 收藏 所屬分類(lèi): 工作心得 、EJB3