粗心大意,老犯錯!
今天上午在調(diào)試EJB3調(diào)用WebService時一直遇到MySQL報(bào)出的這個問題。郁悶壞了,只是執(zhí)行了一句update而已,就導(dǎo)致這樣錯誤… …
經(jīng)過半個小時排查,終于找到問題所在了。原因是分布式事務(wù)引起的。
場景描述:
EJB3操作A表-->調(diào)用WebService-->WebService操作B表
在操作A表的時候需要等待WebService的調(diào)用,如果沒有異常,則可以提交事務(wù),如果出現(xiàn)異常,則不能提交事務(wù);
在操作B表的時候需要處理異常;
一個簡單的分布式事務(wù),一般情況下是沒有問題的~但是由于我的粗心大意,做成了EJB3也在操作B表,這樣就導(dǎo)致了表被鎖死的情況出現(xiàn)~真是郁悶啊!
客戶虐我千百遍,我待客戶如初戀!