posts - 66,  comments - 11,  trackbacks - 0
          Java Transaction API(Java事務(wù)API) (JTA)Java Transaction API(Application Programming Interface)


          什么是JTA Transaction?它有怎樣的特點(diǎn)呢?JTA Transaction是指由J2EE Transaction manager去管理的事務(wù)。其最大的

          特點(diǎn)是調(diào)用UserTransaction接口的begin,commit和rollback方法來完成事務(wù)范圍的界定,事務(wù)的提交和回滾。JTA

          Transaction可以實(shí)現(xiàn)同一事務(wù)對(duì)應(yīng)不同的數(shù)據(jù)庫,但是它仍然無法實(shí)現(xiàn)事務(wù)的嵌套。



          分布式事務(wù)的規(guī)范由OMG的OTS所描述。   
          JTA是只是一組java接口用于描述,J2ee框架中事務(wù)管理器與應(yīng)用程序,資源管理器,以及應(yīng)用服務(wù)器之間的事務(wù)通訊。   
          它主要包括高層接口即面向應(yīng)用程序的接口;XAResource接口即面向資源的接口;以及事務(wù)管理器的接口。值得注意的是JTA

          只提供了接口,沒有具體的實(shí)現(xiàn)。   
          JTS是服務(wù)OTS的JTA的實(shí)現(xiàn)。簡單的說JTS實(shí)現(xiàn)了JTA接口,并且符合OTS的規(guī)范。   
             
          資源管理器只要其提供給事務(wù)管理器的接口符合XA接口規(guī)范,就可以被事務(wù)管理器處理。   
             
          所以,JTA可以處理任何提供符合XA接口的資源。包括:數(shù)據(jù)庫,JMS,商業(yè)對(duì)象等等  


          “Java 事務(wù) API”(JTA)啟用兩階段提交功能。當(dāng)配置 WebSphere Application Server 以訪問數(shù)據(jù)庫時(shí),可選擇具有

          JTA 能力的驅(qū)動(dòng)程序。如果需要兩階段提交功能,則必須使用啟用 JTA 的驅(qū)動(dòng)程序。
          只要您在事務(wù)中調(diào)用了多個(gè)數(shù)據(jù)庫連接,就需要 JTA。只要您在事務(wù)中調(diào)用了多個(gè)數(shù)據(jù)庫服務(wù)器,就需要兩階段提交。這些

          連接可以是相同的物理數(shù)據(jù)庫服務(wù)器或多個(gè)數(shù)據(jù)庫服務(wù)器。例如:

              * 實(shí)體企業(yè) Bean Entity1 在應(yīng)用程序服務(wù)器 AppServer1 中部署。
              * 實(shí)體企業(yè) Bean Entity2 在應(yīng)用程序服務(wù)器 AppServer1 中部署。
              * 會(huì)話企業(yè) Bean Session1 在應(yīng)用程序服務(wù)器 AppServer1 中部署。

          如果 Session1 對(duì)同一事務(wù)內(nèi)的 Entity1 和 Entity2 調(diào)用了方法而這兩個(gè)企業(yè) Bean 正在使用不同的物理數(shù)據(jù)庫連接,則

          必須對(duì) Entity1 和 Entity2 使用的數(shù)據(jù)源啟用 JTA。當(dāng)從相同的數(shù)據(jù)源對(duì)象獲取那些連接時(shí),這也是成立的。這需要具有

          JTA 能力的驅(qū)動(dòng)程序以提交事務(wù)。
          當(dāng)事務(wù)涉及到多個(gè)進(jìn)程時(shí),JTA 也是必需的。例如,一個(gè)事務(wù)可能會(huì)涉及在多個(gè)應(yīng)用程序服務(wù)器中部署的企業(yè) Bean。

              * 實(shí)體企業(yè) Bean Entity1 在應(yīng)用程序服務(wù)器 AppServer1 中部署。
              * 實(shí)體企業(yè) Bean Entity2 在應(yīng)用程序服務(wù)器 AppServer2 中部署。
              * 會(huì)話企業(yè) Bean Session1 在應(yīng)用程序服務(wù)器 AppServer1 中部署。

          如果 Session1 對(duì)同一事務(wù)(此事務(wù)構(gòu)成一個(gè)分布式事務(wù))內(nèi)的 Entity1 和 Entity2 調(diào)用了方法,則必須對(duì) Entity1 和

          Entity2 使用的數(shù)據(jù)源啟用 JTA。
          性能實(shí)現(xiàn)JTA 啟用的連接與非 JTA 啟用的連接執(zhí)行情況不同。基于此原因,如果您的應(yīng)用程序不需要 JTA,則最好使用非

          JTA 啟用的驅(qū)動(dòng)程序。
          posted on 2009-10-16 14:23 王永慶 閱讀(779) 評(píng)論(0)  編輯  收藏 所屬分類: 設(shè)計(jì)思想

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          <2009年10月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          關(guān)注blogs

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 惠州市| 光泽县| 庆阳市| 蓝山县| 永吉县| 甘德县| 始兴县| 专栏| 龙海市| 松滋市| 汉中市| 调兵山市| 西乡县| 安宁市| 行唐县| 连云港市| 来宾市| 安顺市| 师宗县| 柳州市| 洱源县| 衡阳县| 邻水| 霍山县| 吕梁市| 鄂托克前旗| 建阳市| 徐汇区| 板桥市| 盈江县| 沂源县| 贵南县| 昭平县| 太仓市| 三亚市| 岑巩县| 石河子市| 宜都市| 乐山市| 台东市| 昌平区|