笨笨的思想片斷

          零碎片斷,雜七雜八。
          posts - 25, comments - 79, trackbacks - 0, articles - 0

          不間斷運行工作系統元數據更新策略

          Posted on 2005-12-02 16:40 笨笨 閱讀(1379) 評論(0)  編輯  收藏 所屬分類: 軟件開發

          關鍵在于元數據更新的事務性

          一般做法如下:
          meta_refresh.gif

          主動檢查:每個進程內,有一個定時檢查模塊,定時檢查數據庫中元數據表的最后更新時間戳,發現需要重新加載的元數據。
          被動通知:每個進程內,有一個等待更新消息通知的消息驅動Bean模塊,接受元數據管理機發出的元數據更新JMS消息/MQ消息,更新指定元數據。

          元數據更新的事務性:為保證業務處理模塊不受元數據更新過程的影響;在程序設計上,采用雙內存切換機制。即內存中,同時有兩塊內存用于存放元數據。任一時刻,元數據全局變量指向其中一塊,為當前工作元數據內存塊;元數據檢查更新模塊,則使用另一塊內存,在元數據加載、校驗過程結束后,再切換元數據全局變量指向新的元數據內存塊;切換元數據全局變量的過程自身受共享鎖保護。從而保證業務處理模塊的處理過程不受后臺元數據切換的影響,并且業務處理模塊所訪問的元數據始終是可用的,不會出現業務處理過程中,元數據變化的情況。

          對于分布式應用,有可能需要自行編寫元數據更新的分布式事務管理器,自行實現元數據更新的兩階段提交過程。如果想偷懶,也可以考慮用JCA自行實現Resource Manager,借用應用服務器的Transaction Manager。

          主站蜘蛛池模板: 庐江县| 尤溪县| 宁乡县| 孟州市| 黑河市| 杭州市| 淮阳县| 郎溪县| 新巴尔虎右旗| 赫章县| 正安县| 江西省| 交口县| 宜宾县| 文水县| 元阳县| 铁岭县| 巴青县| 棋牌| 易门县| 凤山市| 从化市| 尼玛县| 亚东县| 平泉县| 栾城县| 海安县| 缙云县| 仁寿县| 谷城县| 福贡县| 六枝特区| 尼木县| 岐山县| 修文县| 福建省| 伊金霍洛旗| 吉水县| 苏尼特右旗| 呈贡县| 许昌市|