項目接近尾聲,老大讓我們幾個研究一些新技術,以便為將來項目的擴展做打算,我被分配到JOTM這一塊。說實話,自己對分布式事務也不了解,至於JTA,只是了解概念。
至於什么是JOTM、JOTM有什么用,大家可以訪問官網http://jotm.objectweb.org/index.html或者百度、google。趁着周末閑,於是搞了個DEMO。這個demo是用spring和jotm實現,數據庫采用的oracle.本文只做簡單的配置介紹,以及實現基本的同步回滾、提交效果。
首先,下載jar包,我的項目用的jar包如下:
基本上就是spring、JOTM以及oracle驅動jar包。
其次:引入carol.properties log4j.properties兩個配置文件,這些文件可以再下載的JOTM的conf目錄里找到。同時,新建一個spring的配置文件,用來初始化數據源之類的。
這是我的文件內容:
我配置了兩個oracle的數據源。兩個數據源都交給JOTM來管理。同時有兩個service:Dao1ServiceImpl\Dao2ServiceImpl分別操作兩個數據源的表。為這兩個service添加事務
兩個service實現如下:
把service1的add方法和service2的add方法在service1中調用service2的方法,同時讓service1出現異常,這樣在分布式事務的情況下會得到結果:兩條數據都米有插入成功,同時回滾。
測試類:
記錄下配置的步驟,給自己留個備份。
剛開始的時候是用MySQL進行測試的,一直不行。搜了很多,原來MySQL不支持事務管理,暈。
demo我已經上傳到我的CSDN資源里面了,大家可以去下載(免下載積分)http://download.csdn.net/detail/wangyinbin/4246381。PS:CSDN下載專區,為啥剛剛上傳的資源自己看不到咯?