Java Transaction API(Java事務API) (JTA)Java Transaction API(Application Programming Interface)
什么是JTA Transaction?它有怎樣的特點呢?JTA Transaction是指由J2EE Transaction manager去管理的事務。其最大的
特點是調用UserTransaction接口的begin,commit和rollback方法來完成事務范圍的界定,事務的提交和回滾。JTA
Transaction可以實現同一事務對應不同的數據庫,但是它仍然無法實現事務的嵌套。
分布式事務的規范由OMG的OTS所描述。
JTA是只是一組java接口用于描述,J2ee框架中事務管理器與應用程序,資源管理器,以及應用服務器之間的事務通訊。
它主要包括高層接口即面向應用程序的接口;XAResource接口即面向資源的接口;以及事務管理器的接口。值得注意的是JTA
只提供了接口,沒有具體的實現。
JTS是服務OTS的JTA的實現。簡單的說JTS實現了JTA接口,并且符合OTS的規范。
資源管理器只要其提供給事務管理器的接口符合XA接口規范,就可以被事務管理器處理。
所以,JTA可以處理任何提供符合XA接口的資源。包括:數據庫,JMS,商業對象等等
“Java 事務 API”(JTA)啟用兩階段提交功能。當配置 WebSphere Application Server 以訪問數據庫時,可選擇具有
JTA 能力的驅動程序。如果需要兩階段提交功能,則必須使用啟用 JTA 的驅動程序。
只要您在事務中調用了多個數據庫連接,就需要 JTA。只要您在事務中調用了多個數據庫服務器,就需要兩階段提交。這些
連接可以是相同的物理數據庫服務器或多個數據庫服務器。例如:
* 實體企業 Bean Entity1 在應用程序服務器 AppServer1 中部署。
* 實體企業 Bean Entity2 在應用程序服務器 AppServer1 中部署。
* 會話企業 Bean Session1 在應用程序服務器 AppServer1 中部署。
如果 Session1 對同一事務內的 Entity1 和 Entity2 調用了方法而這兩個企業 Bean 正在使用不同的物理數據庫連接,則
必須對 Entity1 和 Entity2 使用的數據源啟用 JTA。當從相同的數據源對象獲取那些連接時,這也是成立的。這需要具有
JTA 能力的驅動程序以提交事務。
當事務涉及到多個進程時,JTA 也是必需的。例如,一個事務可能會涉及在多個應用程序服務器中部署的企業 Bean。
* 實體企業 Bean Entity1 在應用程序服務器 AppServer1 中部署。
* 實體企業 Bean Entity2 在應用程序服務器 AppServer2 中部署。
* 會話企業 Bean Session1 在應用程序服務器 AppServer1 中部署。
如果 Session1 對同一事務(此事務構成一個分布式事務)內的 Entity1 和 Entity2 調用了方法,則必須對 Entity1 和
Entity2 使用的數據源啟用 JTA。
性能實現JTA 啟用的連接與非 JTA 啟用的連接執行情況不同。基于此原因,如果您的應用程序不需要 JTA,則最好使用非
JTA 啟用的驅動程序。
posted on 2009-10-16 14:23
王永慶 閱讀(763)
評論(0) 編輯 收藏 所屬分類:
設計思想