分布式事務之TCC(示例代碼)


 

 

 

PS:在寫這段代碼的時候,還發現了一個細節,就是try...catch代碼塊后面的代碼,在發生異常的時候,會能執行到的。所以B回滾的代碼:throw e,是不需要放在finally里面的,也就是說,只要B事務發生異常,無論A補償是否成功,B都可以成功的回滾。

 但是經過和別人的討論,發現此處嚴謹來說,還是應該放在finally代碼塊中,因為如果catch塊里面有throw 的需求,或者catch的異常范圍不是所有的exception,下面的代碼就執行不到了。

 

 

所以最終代碼,應該是這樣,確保B回滾成功。

 

經過驗證,這段代碼是有問題的,A能成功補償,但是B卻不能成功回滾,但是單獨執行B,可以回滾,原因未知。。。。。。。。待繼續優化!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM