日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

全局和本地事务(从理论上)

發布時間:2024/9/27 编程问答 52 豆豆
生活随笔 收集整理的這篇文章主要介紹了 全局和本地事务(从理论上) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

全局和本地事務

·???全局事務 - 資源管理器管理和協調的事務,可以跨越多個數據庫和進程。資源管理器一般使用?XA二階段提交協議與“企業信息系統”(EIS)?或數據庫進行交互。

·???本地事務 - 在單個?EIS?或數據庫的本地并且限制在單個進程內的事務。本地事務不涉及多個數據來源。

本地和全局事務都使用?javax.transaction.UserTransaction?接口劃分界限,客戶端必須使用此接口。本地事務不使用事務管理器,因而處理速度更快。

起初,所有事務都是本地的。如果非?XA?數據源連接是事務范圍中登記的第一個資源連接,當“另一個”XA?數據源連接加入此連接時,該非?XA?數據源連接就成為全局事務。如果另一個非?XA?數據源連接試圖加入,就會產生異常。

J2EE開發者有兩個事務管理的選擇:?全局??本地?事務。全局事務由應用服務器管理,使用JTA。局部事務是和資源相關的,比如一個和JDBC連接關聯的事務。這個選擇有深刻的含義。例如,全局事務可以用于多個事務性的資源(典型例子是關系數據庫和消息隊列)。使用局部事務,應用服務器不需要參與事務管理,并且不能幫助確保跨越多個資源(需要指出的是多數應用使用單一事務性的資源)的事務的正確性。

全局事務.??全局事務有一個重大的缺陷,代碼需要使用JTA:一個笨重的API(部分是因為它的異常模型)。此外,JTAUserTransaction通常需要從JNDI獲得,這意味著我們為了JTA,需要?同時?使用JNDI?JTA。顯然全部使用全局事務限制了應用代碼的重用性,因為JTA通常只在應用服務器的環境中才能使用。?以前,使用全局事務的首選方式是通過EJB?CMT(容器管理事務):CMT?聲明式事務管理?的一種形式(區別于?編程式事務管理)。EJBCMT不需要任何和事務相關的JNDI查找,雖然使用EJB本身肯定需要使用JNDI。它消除了大多數(不是全部)硬編碼的方式去控制事務。重大的缺陷是CMT綁定在JTA和應用服務器環境上,并且只有我們選擇使用EJB實現業務邏輯,或者至少處于一個事務化EJB的外觀(Facade)后才能使用它。EJB有如此多的詬病,尤其是存在其它聲明式事務管理時,EJB不是一個吸引人的建議。

本地事務.?本地事務容易使用,但也有明顯的缺點:它們不能用于多個事務性資源。例如,使用JDBC連接事務管理的代碼不能用于全局的JTA事務中。另一個缺點是局部事務趨向于入侵式的編程模型。

總結

以上是生活随笔為你收集整理的全局和本地事务(从理论上)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。