馬可波羅的夢(mèng)鄉(xiāng)

          BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
            4 Posts :: 50 Stories :: 2 Comments :: 0 Trackbacks
          要辨別事務(wù)的邊界。就是啟動(dòng)事務(wù)和提交事務(wù)的邊界。 DAO對(duì)象的每個(gè)方法都對(duì)應(yīng)于一些數(shù)據(jù)庫(kù)操作。如果需要把兩個(gè)或更多個(gè)方法作為一個(gè)事務(wù),則需要在更高的層次定義事務(wù)

          Spring的一個(gè)好處是為事務(wù)提供了一個(gè)統(tǒng)一的抽象,不論底層是用什么實(shí)現(xiàn),如Hibernate, IBatis或者JDBC,都可以使用一個(gè)統(tǒng)一的接口。
          如果用Spring來(lái)管理Hibernate事務(wù),最好不要直接使用Hibernate事務(wù)接口,因?yàn)檫@會(huì)造成混亂。如果使用Spring來(lái)管理Hibernate事務(wù),那么就調(diào)用Spring的接口。

          事務(wù)中獲取的Connection必須是和事務(wù)關(guān)聯(lián)的那個(gè)Connection,不能直接調(diào)用DataSource的getConnection,如果得到的是不同的Connection,是無(wú)法實(shí)現(xiàn)事務(wù)的。因此,最好調(diào)用Spring的事務(wù)工具類。

          事務(wù)管理器,事務(wù)狀態(tài),事務(wù)發(fā)起,事務(wù)提交,事務(wù)回滾等。
          Spring事務(wù),對(duì)系統(tǒng)性能的影響有多大,那些更復(fù)雜的分布式事務(wù)如何處理,如何衡量它的性能損耗呢?

          JTS是底層接口,JTA是高層接口。
          JDBC事務(wù)是局部事務(wù),只能應(yīng)用于當(dāng)前數(shù)據(jù)庫(kù)。如果事務(wù)跨多個(gè)數(shù)據(jù)庫(kù),就必須使用分布式事務(wù)。這個(gè)時(shí)候可以采用JTA。
          JTA事務(wù),涉及一個(gè)事務(wù)管理器和多個(gè)資源管理器。資源管理器可以是任何持久性數(shù)據(jù)存儲(chǔ)系統(tǒng),包括數(shù)據(jù)庫(kù)系統(tǒng)、MIS系統(tǒng)、JMS等。

          JDBC驅(qū)動(dòng)只有實(shí)現(xiàn)了XAConnection和XAResource接口才能參與JTA事務(wù)。但是一些高級(jí)JavaEE服務(wù)器可以將普通JDBC驅(qū)動(dòng)模擬為支持XA的JDBC驅(qū)動(dòng),這個(gè)模擬過(guò)程是如何完成的?

          XAConnection和JDBC Connection的事務(wù)操作是不同的,它絕不能自動(dòng)提交,也絕不能調(diào)用XAConnection的commit和rollback方法,只能調(diào)用UserTransaction對(duì)象的begin,rollback和commit方法如何看其底層實(shí)現(xiàn)機(jī)制。或者沒(méi)有必要。

          如果只有單個(gè)數(shù)據(jù)庫(kù),使用JTA會(huì)帶來(lái)不必要的復(fù)雜性。不過(guò)對(duì)于Spring來(lái)說(shuō),使用哪種事務(wù)已經(jīng)不重要了,因?yàn)?span style="font-size: 8pt; color: red">它定義了一個(gè)統(tǒng)一的抽象事務(wù)編程模型。并配合聲明式事務(wù),選擇JDBC事務(wù),還是JTA事務(wù),所需要做的,僅僅是修改配置文件。 一般不會(huì)涉及代碼的修改,這是Spring的優(yōu)秀功能之一。

          事務(wù)的隔離級(jí)別是由底層數(shù)據(jù)庫(kù)實(shí)現(xiàn)的。而事務(wù)的傳播行為這是應(yīng)用程序自己管理的

          posted on 2009-08-05 03:37 夢(mèng)回唐朝 閱讀(217) 評(píng)論(0)  編輯  收藏 所屬分類: Spring

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 福鼎市| 克拉玛依市| 三亚市| 孙吴县| 新乐市| 吴堡县| 綦江县| 玛纳斯县| 抚州市| 兴义市| 通道| 朝阳区| 佛冈县| 宁远县| 府谷县| 丘北县| 长治市| 辽宁省| 敦化市| 宜城市| 新乡县| 鹤峰县| 朝阳市| 侯马市| 香格里拉县| 拜泉县| 泾源县| 方城县| 休宁县| 伽师县| 永福县| 寻乌县| 区。| 沂水县| 华宁县| 阿鲁科尔沁旗| 武乡县| 江西省| 全椒县| 崇州市| 东乡族自治县|