<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    鷹翔宇空

    學習和生活

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      110 Posts :: 141 Stories :: 315 Comments :: 1 Trackbacks
    引自:http://act.it.sohu.com/book/chapter.php?id=387&volume=4&chapter=2

    應用程序服務器

      應用程序服務器是事務處理操作的另一個組件。應用程序服務器處理大部分的應用程序操作并且獲得最終用戶應用程序的一些負載。基于前面的例子,我們可以看出應用程序服務器在事務處理上添加了另一個操作層:


      到目前為止,我們的例子說明了單個的本地事務處理,并且描述了分布式事務處理模型的五個組件中的四個。第五個組件,事務管理程序只有當事務將要被分配的時候才會開始被考慮。

      分布式事務處理和事務管理程序

      像我們前面所提到的,一個分布式事務處理是一個在兩個或更多網絡資源上訪問和更新數據的事務處理。

      這些資源可以由好幾個位于一個單獨服務器上的不同的關系型數據庫管理系統組成,比如說Oracle、SQL Server和Sybase;它們也可以包含存在于若干不同的服務器上的同一種數據庫的若干個實例。在任何情況下,一個分布式事務處理包括各種的資源管理程序之間的協同作用。這個協同作用是事務管理函數。

      事務管理程序負責作出要么提交(commit)要么退回(rollback)任何分布式事務處理的決定。一個提交決定應該導致一個成功的事務處理;而退回操作則是保持數據庫中的數據不變。 JTA指定一個分布式事務處理中的事務管理程序和另一個組件之間的標準Java接口:應用程序,應用程序服務器和資源管理程序。 這個關系被顯示在下面的圖表中:



      在事務管理程序周圍的數字框框相應于JTA的三個接口部分:

      1—UserTransaction—javax.transaction.UserTransaction接口提供能夠編程地控制事務處理范圍的應用程序。 javax.transaction.UserTransaction方法開啟一個全局事務并且使用調用線程與事務處理關聯。

      2—Transaction Manager—javax.transaction.TransactionManager接口允許應用程序服務器來控制代表正在管理的應用程序的事務范圍。

      3—XAResource—javax.transaction.xa.XAResource接口是一個基于X/Open CAE Specification的行業標準XA接口的Java映射。

      注意,一個限制性環節是通過JDBC驅動程序的XAResource接口的支持。JDBC驅動程序必須支持兩個正常的JDBC交互作用:應用程序和/或應用程序服務器,而且以及JTA的XAResource部分。

      編寫應用程序水平代碼的開發者不會關心分布式事務處理管理的細節。 這是分布式事務處理基本結構的工作—應用程序服務器、事務管理程序和JDBC驅動程序。應用程序代碼中唯一的需要注意的就是當連接處于一個分布式事務范圍內的時候,不應該調用一個會影響事務邊界的方法。特別的是,一個應用程序不應該調用Connection方法commit、rollback和setAutoCommit(true),因為它們將破壞分布式事務的基本結構管理。

      分布式事務處理

      事務管理程序是分布式事務基本結構的基本組件;然而JDBC驅動程序和應用程序服務器組件應該具備下面的特征:

      驅動程序應該實現JDBC 2.0應用程序接口,包括Optional Package接口XADataSource和XAConnection以及JTA接口XAResource。

      應用程序服務器應該提供一個DataSource類,用來實現與分布式事務基本結的交互以及一個連接池模塊(用于改善性能)。

      分布式事務處理的第一步就是應用程序要發送一個事務請求到事務管理程序。雖然最后的commit/rollback決定把事務作為一個簡單的邏輯單元來對待,但是仍然可能會包括許多事務分支。一個事務分支與一個到包含在分布式事務中的每個資源管理程序相關聯。因此,到三個不同的關系數據庫管理的請求需要三個事務分支。每個事務分支必須由本地資源管理程序提交或者返回。事務管理程序控制事務的邊界,并且負責最后決定應該提交或者返回的全部事務。 這個決定由兩個步驟組成,稱為Two - Phase Commit Protocol。

      在第一步驟中,事務管理程序輪詢所有包含在分布式事務中的資源管理程序(關系數據庫管理)來看看哪個可以準備提交。如果一個資源管理程序不能提交,它將不響應,并且把事務的特定部分返回,以便數據不被修改。

      在第二步驟中,事務管理程序判斷否定響應的資源管理程序中是否有能夠返回整個事務的。如果沒有否定響應的話,翻譯管理程序提交整個事務并且返回結果到應用程序中。

      開發事項管理程序代碼的開發者必須與所有三個JTA接口有關:UserTransaction、TransactionManager和XAResource,這三個接口都被描述在

      Sun JTA specification中。JDBC驅動程序開發者只需要關心XAResource接口。這個接口是允許一個資源管理程序參與事務的行業標準X/Open XA協議的Java映射。連接XAResource接口的驅動程序組件負責在事務管理程序和資源管理程序之間擔任"翻譯"的任務。下面的章節提供了XAResource調用的例子。
    posted on 2006-02-20 14:45 TrampEagle 閱讀(253) 評論(0)  編輯  收藏 所屬分類: java
    主站蜘蛛池模板: 亚洲精品国产成人| 久久av无码专区亚洲av桃花岛| 亚洲国产精品VA在线观看麻豆| 亚洲精品国产免费| 亚洲av无码片vr一区二区三区| japanese色国产在线看免费| 95免费观看体验区视频| 午夜免费福利在线| 黄色a三级免费看| 日韩免费电影网站| 青草草在线视频永久免费| 亚洲乳大丰满中文字幕| 亚洲一区精彩视频| 91视频免费观看| 永久免费毛片手机版在线看| 国产亚洲婷婷香蕉久久精品 | 亚洲熟妇少妇任你躁在线观看无码| 久久亚洲精品中文字幕无码| 亚洲精品国产suv一区88| 成全在线观看免费观看大全| 精品国产麻豆免费网站| 亚洲天堂在线播放| 久青草国产免费观看| 女性自慰aⅴ片高清免费| 午夜亚洲www湿好大| 三级片免费观看久久| 一区二区无码免费视频网站| 亚洲精品无码mv在线观看网站| 亚洲国产成人AV在线播放| 最近免费中文字幕大全免费版视频 | 久久亚洲国产成人亚| 视频一区二区三区免费观看| 99在线精品免费视频九九视| 亚洲色成人WWW永久网站| 亚洲av日韩av永久在线观看 | 成在线人永久免费视频播放| 亚洲激情电影在线| 一个人看的www免费视频在线观看 一个人免费视频观看在线www | 亚洲国产日韩a在线播放| 猫咪免费人成网站在线观看| 亚洲日韩精品无码一区二区三区|