java語言中JTS 是一個組件事務監(jiān)視器(component transaction monitor)。
這是什么意思?TPM 是一個程序,它代表應用程序協(xié)調分布式事務的執(zhí)行。
TPM 與數據庫出現(xiàn)的時間長短差不多;在 60 年代后期,IBM 首先開發(fā)了 CICS,至今人們仍在使用。經典的(或者說程序化)TPM 管理被程序化定義為針對事務性資源(比如數據庫)的操作序列的事務。隨著分布式對象協(xié)議,如 CORBA、DCOM 和 RMI 的出現(xiàn),人們希望看到事務更面向對象的前景。將事務性語義告知面向對象的組件要求對 TPM 模型進行擴展 — 在這個模型中事務是按照事務性對象的調用方法定義的。
西安達內培訓(http://www.xatarena.cn/java/index.jhtml)講師表示,JTS 只是一個組件事務監(jiān)視器(有時也稱為對象事務監(jiān)視器(object transaction monitor)),或稱為 CTM。
JTS 和 J2EE 的事務支持設計受 CORBA 對象事務服務(CORBA Object Transaction Service,OTS)的影響很大。實際上,JTS 實現(xiàn) OTS 并充當 Java 事務 API(Java Transaction API)— 一種用來定義事務邊界的低級 API — 和 OTS 之間的接口。使用 OTS 代替創(chuàng)建一個新對象事務協(xié)議遵循了現(xiàn)有標準,并使 J2EE 和 CORBA 能夠互相兼容。
乍一看,從程序化事務監(jiān)視器到 CTM 的轉變好像只是術語名稱改變了一下。然而,差別不止這一點。當 CTM 中的事務提交或回滾時,與事務相關的對象所做的全部更改都一起被提交或取消。但 CTM 怎么知道對象在事務期間做了什么事?象 EJB 組件之類的事務性組件并沒有 commit() 或 rollback() 方法,它們也沒向事務監(jiān)視器注冊自己做了什么事。那么 J2EE 組件執(zhí)行的操作如何變成事務的一部分呢?
透明的資源征用
當應用程序狀態(tài)被組件操縱時,它仍然存儲在事務性資源管理器(例如,數據庫和消息隊列服務器)中,這些事務性資源管理器可以注冊為分布式事務中的資源管理器。 |
 |
|