笨笨的思想片斷

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

          關(guān)鍵在于元數(shù)據(jù)更新的事務性

          一般做法如下:
          meta_refresh.gif

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

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

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

          主站蜘蛛池模板: 巴东县| 洛隆县| 梨树县| 鄂伦春自治旗| 阜康市| 吉首市| 汉阴县| 宣汉县| 松滋市| 鄢陵县| 洞头县| 肥西县| 兴海县| 重庆市| 大余县| 石家庄市| 江北区| 固安县| 崇左市| 赣榆县| 平乐县| 孙吴县| 峨眉山市| 黑河市| 蕉岭县| 张家港市| 六枝特区| 遵化市| 本溪市| 荥阳市| 衡南县| 漳州市| 福泉市| 平乡县| 英吉沙县| 马公市| 廉江市| 德阳市| 鱼台县| 永吉县| 灵石县|