Atomikos 是一個為Java平台提供增值服務的並且開源類事務管理器。
Atomikos TransactionsEssentials 是一個為Java平台提供增值服務的並且開源類事務管理器,以下是包括在這個開源版本中的一些功能:
l 全面崩潰 / 重啟恢復
l 兼容標準的SUN公司JTA API
l 嵌套事務
l 為XA和非XA提供內置的JDBC適配器
注釋:XA:XA協定由Tuxedo首先提出的,並交給X/Open組織,作為資源管理器(資料庫)與事務管理器的接口標準。目前,Oracle、Informix、DB2和Sybase等各大資料庫廠家都提供對XA的支持。XA協定採用兩階段提交方式來管理分散式事務。XA接口提供資源管理器與事務管理器之間進行通信的標準接口。XA協定包括兩套函式,以xa_開頭的及以ax_開頭的。
以下的函式使事務管理器可以對資源管理器進行的操作:
1)xa_open,xa_close:建立和關閉與資源管理器的連線。
2)xa_start,xa_end:開始和結束一個本地事務。
3)xa_prepare,xa_commit,xa_rollback:預提交、提交和回滾一個本地事務。
4)xa_recover:回滾一個已進行預提交的事務。
5)ax_開頭的函式使資源管理器可以動態地在事務管理器中進行註冊,並可以對XID(TRANSACTION IDS)進行操作。
6)ax_reg,ax_unreg;允許一個資源管理器在一個TMS(TRANSACTION MANAGER SERVER)中動態註冊或撤消註冊。
l 內置的JMS適配器XA-capable JMS佇列連線器
注釋:JMS:jms即Java訊息服務(Java Message Service)應用程式接口是一個Java平台中關於面向訊息中間件(MOM)的API,用於在兩個應用程式之間,或分散式系統中傳送訊息,進行異步通信。Java訊息服務是一個與具體平台無關的API,絕大多數MOM提供商都對JMS提供支持。
l 通過XA API兼容第三方適配器
l 更好的整合您的項目
l 集成Hibernate
如何使用Atomikos TransactionsEssentials
Atomikos TransactionsEssentials 是一個可靠的庫,可以加入到您的Java應用程式,也就是說為了使用這個產品,您必須添加一些jar檔案(包括在dist和lib資料夾下)到您的應用程式或者應用程式伺服器。
請注意:Atomikos TransactionsEssentials是一個非常快速的嵌入式事務管理器,這就意味著,您不需要另外啟動一個單獨的事務管理器進程(不要查找任何的bin資料夾)。相反,您的套用伺服器將有它自己的intra-VM事務管理器。
配置需求:至少Java1.5 jdk,並且最少128M的記憶體
性能最佳化:儘管這個軟體有著很大的優勢,但是想要更好的發揮其作用,可以按以下的方法最佳化:
l 更高的記憶體,意味著更高的吞吐量(每秒的事務數目)
l 使連線池儘可能的大
l 一旦你不需要的連線請馬上關閉它們。不要把你的應用程式放在快取里,讓內部連線池為你做這些,這將促使更高效的連線使用
l 不要讓活動的事務閒置:終止所有情況下的事務,尤其是在異常報錯情況下的事務。這將減少資料庫的鎖定時間,並且最大效率的處理啟用的使用。
如果想獲取這些細節的更多信息,也要參閱文檔說明部分。
值得注意的是,在我們所有的壓力測試中,Atomikos TransactionsEssentials比J2EE的web容器更高效的吞吐量。這些測量值包括日誌記錄的高效的事務狀態,同樣,在我們所有的測量中,包括XA和non-XA,高效的效率是一樣的。
在J2SE中使用Atomikos Transactions Essentials,只需要按以下步驟
- 將idst和lib中的jar包全部放入的項目中
- 創建或者自定義你套用的transactions.properties(或者jta.properties)檔案(事務管理器的配置),然後將它放入到classpath中,安裝資料夾中包涵一個實例檔案;在properties檔案中注釋(#)後面的是默認值,取消一行並且改變默認值。