馬可波羅的夢鄉

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            4 Posts :: 50 Stories :: 2 Comments :: 0 Trackbacks
          要辨別事務的邊界。就是啟動事務和提交事務的邊界。 DAO對象的每個方法都對應于一些數據庫操作。如果需要把兩個或更多個方法作為一個事務,則需要在更高的層次定義事務

          Spring的一個好處是為事務提供了一個統一的抽象,不論底層是用什么實現,如Hibernate, IBatis或者JDBC,都可以使用一個統一的接口。
          如果用Spring來管理Hibernate事務,最好不要直接使用Hibernate事務接口,因為這會造成混亂。如果使用Spring來管理Hibernate事務,那么就調用Spring的接口。

          事務中獲取的Connection必須是和事務關聯的那個Connection,不能直接調用DataSource的getConnection,如果得到的是不同的Connection,是無法實現事務的。因此,最好調用Spring的事務工具類。

          事務管理器,事務狀態,事務發起,事務提交,事務回滾等。
          Spring事務,對系統性能的影響有多大,那些更復雜的分布式事務如何處理,如何衡量它的性能損耗呢?

          JTS是底層接口,JTA是高層接口。
          JDBC事務是局部事務,只能應用于當前數據庫。如果事務跨多個數據庫,就必須使用分布式事務。這個時候可以采用JTA。
          JTA事務,涉及一個事務管理器和多個資源管理器。資源管理器可以是任何持久性數據存儲系統,包括數據庫系統、MIS系統、JMS等。

          JDBC驅動只有實現了XAConnection和XAResource接口才能參與JTA事務。但是一些高級JavaEE服務器可以將普通JDBC驅動模擬為支持XA的JDBC驅動,這個模擬過程是如何完成的?

          XAConnection和JDBC Connection的事務操作是不同的,它絕不能自動提交,也絕不能調用XAConnection的commit和rollback方法,只能調用UserTransaction對象的begin,rollback和commit方法如何看其底層實現機制。或者沒有必要。

          如果只有單個數據庫,使用JTA會帶來不必要的復雜性。不過對于Spring來說,使用哪種事務已經不重要了,因為它定義了一個統一的抽象事務編程模型。并配合聲明式事務,選擇JDBC事務,還是JTA事務,所需要做的,僅僅是修改配置文件。 一般不會涉及代碼的修改,這是Spring的優秀功能之一。

          事務的隔離級別是由底層數據庫實現的。而事務的傳播行為這是應用程序自己管理的

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

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 娱乐| 若羌县| 农安县| 博兴县| 明光市| 闽清县| 通道| 东至县| 黔西县| 尉犁县| 博乐市| 宁武县| 汾西县| 石嘴山市| 双城市| 阿克苏市| 黄大仙区| 石家庄市| 嘉义市| 马尔康县| 永丰县| 成安县| 保靖县| 漳平市| 阿拉尔市| 犍为县| 光泽县| 双流县| 前郭尔| 庆云县| 青岛市| 岑溪市| 错那县| 崇文区| 磐安县| 大余县| 广德县| 启东市| 顺昌县| 闸北区| 宁晋县|