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 我愛夏花,更愛秋葉 閱讀(2555) 評論(0)  編輯  收藏 所屬分類: 事務管理

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


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

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

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          不錯的blog

          不錯的網站

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 雷山县| 博客| 双辽市| 垣曲县| 龙山县| 永济市| 运城市| 宁河县| 隆化县| 南宫市| 海门市| 房产| 湟中县| 黄石市| 康平县| 萨迦县| 海门市| 大埔区| 怀宁县| 千阳县| 松江区| 彭泽县| 湄潭县| 新昌县| 汉寿县| 台东市| 衡水市| 云和县| 六安市| 湖南省| 安乡县| 梓潼县| 渭南市| 大荔县| 萨嘎县| 黔江区| 仙居县| 河北区| 定日县| 丹寨县| 桐庐县|