JTA知識 http://letgo./351051.html
JTA主要用于分布式的多個數(shù)據(jù)源的兩階段提交的事務,而JDBC的Connection提供的單個數(shù)據(jù)源的事務; 后者因為只涉及到一個數(shù)據(jù)源,所以其事務可以由數(shù)據(jù)庫自己單獨實現(xiàn), 而JTA事務因為其分布式和多數(shù)據(jù)源的特性, 不可能由任何"一個"數(shù)據(jù)源實現(xiàn)事務, 因此JTA中的事務是由"事務管理器"實現(xiàn)的,它會在多個數(shù)據(jù)源之間統(tǒng)籌事務,具體使用的技術就是所謂的"兩階段提交", 一般JTA事務都是用于EJB中(因為EJB本身也是分布式的), 所以一般的應用服務器都有自己的事務管理器用來管理JTA事務,注意這并不表示EJB容器有管理事務的功能; 事實上也有單獨的事務管理器比如開源的Tyrex. 如果只用Tomcat做應用服務器的話是不能使用JTA事務的;
JTA主要用于分布式的多個數(shù)據(jù)源的兩階段提交的事務,而JDBC的Connection提供的單個數(shù)據(jù)源的事務; 后者因為只涉及到一個數(shù)據(jù)源,所以其事務可以由數(shù)據(jù)庫自己單獨實現(xiàn), 而JTA事務因為其分布式和多數(shù)據(jù)源的特性, 不可能由任何"一個"數(shù)據(jù)源實現(xiàn)事務, 因此JTA中的事務是由"事務管理器"實現(xiàn)的,它會在多個數(shù)據(jù)源之間統(tǒng)籌事務,具體使用的技術就是所謂的"兩階段提交", 一般JTA事務都是用于EJB中(因為EJB本身也是分布式的), 所以一般的應用服務器都有自己的事務管理器用來管理JTA事務,注意這并不表示EJB容器有管理事務的功能; 事實上也有單獨的事務管理器比如開源的Tyrex. 如果只用Tomcat做應用服務器的話是不能使用JTA事務的; 使用 JDBC 事務界定時,您可以將多個 SQL 語句結合到一個事務中。JDBC 事務的一個缺點是事務的范圍局限于一個數(shù)據(jù)庫連接。一個 JDBC 事務不能跨越多個數(shù)據(jù)庫。在下面,我們將看一下如何用 JTA 進行事務界定。因為 JTA 不像 JDBC 那樣有名,所以我們首先做一個簡介。 JTA 簡介 Java 事務 API(JTA) 及其同門兄弟 Java 事務服務(Java Transaction Service JTS)為 J2EE 平臺提供了分布式事務服務。一個分布式的事務涉及一個事務管理器和一個或者多個資源管理器。一個資源管理器是任何類型的持久性的數(shù)據(jù)存儲。事務管理器負責協(xié)調所有事務參與者之間的通信。 JTA 事務比 JDBC 事務功能更強。JDBC 事務局限為一個數(shù)據(jù)庫連接,而 JTA 事務可以有多個參與者。所有下列 Java 平臺組件都可以參與 JTA 事務: JDBC 連接 JDO PersistenceManager 對象 JMS 隊列 JMS 主題 企業(yè) JavaBeans 符合 J2EE 連接體系結構(J2EE Connector Architecture)規(guī)范的資源適配器。
|