posts - 6,  comments - 9,  trackbacks - 0

          對于中小型的應用tomcat作為服務器就足夠了,但是,在我把框架往tomcat上轉移的時候有了一個問題,工作流引擎的數據庫是獨立的,如何保證他和業務的數據庫事務上的統一性,這里就涉及到分布式事務的概念。

          weblogicwebsphere,這種企業級服務器,他們有自己的事務管理器,你可以配置多個datasource,這些datasource可以指向不同的資源(數據庫,消息服務),事務管理器就是這些資源的管理中心,當一個事務開始的時候(begin),事務管理器會記錄并監視這個事務涉及的所有可管理資源,當一個事務結束的時候(commit),他會把所有的資源提交,而當程序出現異常的時候,他會把所有的資源回滾(rollback)。在事務邊界以內,所有的可管理資源實際都是沒有提交的,處于一種等待狀態,只有當事務提交的時候,事務管理器才負責把它所管理的所有資源提交。事務管理器就是一個全局事務管理中心,它負責把許多可管理(可以控制事務)的資源的事務統一起來。

          出于這種這種考慮,我在管理全局性事務的時候,選擇了jtomxapool

          Jotm是一個開源的JTA實現,是由ObjectWeb組織開發的,實際就是實現了事務管理器的功能,而且他還支持分布式事務,如果把jotm結合JORAM (也是由ObjectWeb組織開發的JMS實現)使用,就可以實現JMS的事務管理。(這里我在想,JBossCache是支持事務的cache,如果把它們結合在一起,是不是就可以對緩存進行事務控制了:))

          對于jotm的使用,你只要記住這個應用中只有一個Jotm對象就OK了,對于分布式事務也是一樣,如何保證一個應用中只用一個Jotm實例呢?

          jotmCurrent = Current.getCurrent();

                 使用上面的方法,如果jotmCurrent 等于null,說明現在的jvm中沒有沒有jotm實例,當需要分布式的時候就不能這么判斷了,你必須把jotm對象放到jndi上,以后使用的時候從jndi上取就可以了。

                 如果jotmCurrent不等于空,說明jvm中已經有jotm實例了,而如何得到這個實例了,如果從這個角度去考慮,是不行的,你可以看一下JotmAPI,看一下Current的類說明:

             http://jotm.objectweb.org/current/jotm/jdoc/

           

              public class Current

          extends Object

          implements UserTransaction, TransactionManager, Referenceable, Serializable

          Current 對象實際就是一個事務管理器,哈哈,我們使用jotm,不就是為了這個嗎,okyou got it

          我對jotm和事務的研究還不夠深入,以上都是個人理解,有不對的地方還請大家指出!

          下面的文章,我重點對xapool進行說明(使用他的時候問題特別多:))

           

          posted on 2005-06-11 18:13 我愛夏花,更愛秋葉 閱讀(2556) 評論(0)  編輯  收藏 所屬分類: 事務管理

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2005年6月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          又回到了夏花的時節了!我又回來了:)

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          不錯的blog

          不錯的網站

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 句容市| 嵊泗县| 余干县| 延庆县| 美姑县| 枞阳县| 噶尔县| 康乐县| 淮北市| 佳木斯市| 淮阳县| 措勤县| 远安县| 从化市| 新野县| 连城县| 平遥县| 镇坪县| 天等县| 开化县| 铁岭县| 延川县| 洛阳市| 香港| 克什克腾旗| 澜沧| 水富县| 抚松县| 五指山市| 湾仔区| 南丹县| 隆子县| 无为县| 凌云县| 象州县| 镇远县| 陈巴尔虎旗| 六安市| 嘉荫县| 岳阳市| 诸暨市|