Posted on 2006-02-08 15:12
Terry的Blog 閱讀(1094)
評論(0) 編輯 收藏 所屬分類:
java語言
最近項目中遇到了JTA的內容,在網上搜索了一番了解了一下基本概念。
JTA知識 http://letgo.bokee.com/351051.html
JTA主要用于分布式的多個數據源的兩階段提交的事務,而JDBC的Connection提供的單個數據源的事務; 后者因為只涉及到一個數據源,所以其事務可以由數據庫自己單獨實現, 而JTA事務因為其分布式和多數據源的特性, 不可能由任何"一個"數據源實現事務, 因此JTA中的事務是由"事務管理器"實現的,它會在多個數據源之間統籌事務,具體使用的技術就是所謂的"兩階段提交", 一般JTA事務都是用于EJB中(因為EJB本身也是分布式的), 所以一般的應用服務器都有自己的事務管理器用來管理JTA事務,注意這并不表示EJB容器有管理事務的功能; 事實上也有單獨的事務管理器比如開源的Tyrex. 如果只用Tomcat做應用服務器的話是不能使用JTA事務的;
JTA主要用于分布式的多個數據源的兩階段提交的事務,而JDBC的Connection提供的單個數據源的事務; 后者因為只涉及到一個數據源,所以其事務可以由數據庫自己單獨實現, 而JTA事務因為其分布式和多數據源的特性, 不可能由任何"一個"數據源實現事務, 因此JTA中的事務是由"事務管理器"實現的,它會在多個數據源之間統籌事務,具體使用的技術就是所謂的"兩階段提交", 一般JTA事務都是用于EJB中(因為EJB本身也是分布式的), 所以一般的應用服務器都有自己的事務管理器用來管理JTA事務,注意這并不表示EJB容器有管理事務的功能; 事實上也有單獨的事務管理器比如開源的Tyrex. 如果只用Tomcat做應用服務器的話是不能使用JTA事務的;
使用 JDBC 事務界定時,您可以將多個 SQL 語句結合到一個事務中。JDBC 事務的一個缺點是事務的范圍局限于一個數據庫連接。一個 JDBC 事務不能跨越多個數據庫。在下面,我們將看一下如何用 JTA 進行事務界定。因為 JTA 不像 JDBC 那樣有名,所以我們首先做一個簡介。
JTA 簡介
Java 事務 API(JTA) 及其同門兄弟 Java 事務服務(Java Transaction Service JTS)為 J2EE 平臺提供了分布式事務服務。一個分布式的事務涉及一個事務管理器和一個或者多個資源管理器。一個資源管理器是任何類型的持久性的數據存儲。事務管理器負責協調所有事務參與者之間的通信。
JTA 事務比 JDBC 事務功能更強。JDBC 事務局限為一個數據庫連接,而 JTA 事務可以有多個參與者。所有下列 Java 平臺組件都可以參與 JTA 事務:
JDBC 連接
JDO PersistenceManager 對象
JMS 隊列
JMS 主題
企業 JavaBeans
符合 J2EE 連接體系結構(J2EE Connector Architecture)規范的資源適配器。