JTA和事务管理器(TM)模型
Java Transaction API 允許您操作應(yīng)用程序中的分布式事務(wù)(Distributed Transaction)。JTA 中有一組方法,它將傳統(tǒng)的 JDBC 調(diào)用封裝到了兩階段提交(Two-Phase-Commit)協(xié)議中。
在異構(gòu)環(huán)境中,您通常會(huì)發(fā)現(xiàn)一個(gè)事務(wù)管理器(Transaction Manager),負(fù)責(zé)處理分布式事務(wù)。(實(shí)際上,事務(wù)管理器可以完成大量的工作負(fù)載平衡。)因此,不僅存在到數(shù)據(jù)庫(kù)的直接連接,還有到事務(wù)管理器 (Transaction Manager)的連接。這就是 JTA 發(fā)揮作用的地方:JTA 是 Java 應(yīng)用程序和事務(wù)管理器(Transaction Manager)之間的接口。下圖演示了一個(gè)包含分布式事務(wù)的典型環(huán)境。
由于存在事務(wù)管理器(Transaction Manager),它通常包含在應(yīng)用程序服務(wù)器(Application Server)中,就不再有兩層(Two-Tier)架構(gòu)。傳統(tǒng)的客戶(hù)/服務(wù)器(Client/Server)架構(gòu)已經(jīng)由三層(Tree-Tier)架構(gòu) 所取代,三層架構(gòu)包含應(yīng)用程序/客戶(hù)機(jī)、事務(wù)管理器(Transaction Manager)/應(yīng)用程序服務(wù)器(Application Server)和數(shù)據(jù)庫(kù)服務(wù)器,而數(shù)據(jù)庫(kù)服務(wù)器一般稱(chēng)作XA Resource。
包含 SQL 和 JTA 調(diào)用的 Java 應(yīng)用程序。
管理分布式事務(wù)的應(yīng)用程序服務(wù)器(Application Server)。
參與分布式事務(wù)的數(shù)據(jù)庫(kù)。
Java 應(yīng)用程序向應(yīng)用程序服務(wù)器(Application Server)提交常規(guī) SQL 語(yǔ)句和通用的 XA 調(diào)用。
應(yīng)用程序所發(fā)送的消息由應(yīng)用程序服務(wù)器(Application Server)進(jìn)行處理,并使用 SQL 和數(shù)據(jù)庫(kù)供應(yīng)商特定的 XA 調(diào)用發(fā)送給數(shù)據(jù)庫(kù)。
通常,應(yīng)用程序服務(wù)器(Application Server)提供了應(yīng)用程序可以使用的多種服務(wù)。在談到分布式事務(wù)時(shí),該服務(wù)就稱(chēng)作XA Resource。當(dāng)然,在應(yīng)用程序可以使用 XA Resource 之前,首先要在應(yīng)用程序服務(wù)器中注冊(cè)和配置 XA Resource。
現(xiàn)在,如果您計(jì)劃在應(yīng)用程序中使用 JTA,就必須修改代碼,以便還可以與應(yīng)用程序服務(wù)器(Application Server)進(jìn)行通信。這包括一些附加的方法調(diào)用和指定的錯(cuò)誤/異常處理
參考:http://www.ibm.com/developerworks/cn/data/library/techarticles/dm-0505weber/index.html
總結(jié)
以上是生活随笔為你收集整理的JTA和事务管理器(TM)模型的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 每天定时打开某个网页_Python科普帖
- 下一篇: .net 调用API并解析Json数据方