美章網 資料文庫 NET在事務處理應用范文

    NET在事務處理應用范文

    本站小編為你精心準備了NET在事務處理應用參考范文,愿這些范文能點燃您思維的火花,激發您的寫作靈感。歡迎深入閱讀并收藏。

    NET在事務處理應用

    [摘要]本文論述了.net事務處理中的的應用。討論了在.NET集成開發環境中利用MTS與COM+結合進行分布式事務處理的實現方法。

    [關鍵詞]NET事務處理MTSCOM+分布式事務處理

    隨著信息技術的發展,廣泛的數據交流、共享與協作在現代商業信息化實際應用中變得尤為突出,處理的數據量不斷增大增加了這種關系的復雜性。因此,保證數據的完整性與一致性顯得十分重要。

    一、事務處理概述

    1.什么是事務處理

    事務處理就是綁定在一起的一組處理過程的集合,如果在處理中,這個集合中的任何過程出現了問題,這個事務就會失敗,集合中的所有過程都要恢復到初始狀態。

    2.事務處理的特性

    所有的事務處理必須滿足ACID特性。

    原子性(A):是指事務處理是有或無的命題,一旦啟動,整個事務或者提交,或者放棄;一致性(C):是指事務處理的所有進程都不能違背的商務規則。這些規則規定了數據的一致性;隔離性(I):是指多個事務處理之間的并發控制,即保證各個事務之間不互相影響;持久性(D):是指一旦完成了事務處理,事務處理的結果就應該得到維持。

    二、分布式事務處理

    framework與COM+

    分布式事務處理是指地于分布于相同或不同計算機上的多個不同類型數據數據源進行的事務處理。

    在分布式事務處理中常會用到已經集成到了操作系統中COM+技術,它是COM和MTS的替代技術。.NETframework是Microsoft的新一代開發平臺,它不僅支持COM+,還依賴COM+完成復雜的分布式兩階段提交事務處理,使得使用COM+更加容易。COM+提供了基于MSDTC的強大事務處理模型,使開發者專注于系統的商務和應用邏輯,不必關心中間的具體細節。它融合了分布式事務處理和基于組件編程的優勢,通過聲明組件屬性來實現自動事務處理。用戶只需在類定義時聲明事務處理支持屬性(TSA),COM+可以根據TSA決定組件的事務處理行為,基于組件配置TSA,代表組件自動與MSDTC進行交互,自動處理啟動、提交或終止事務的復雜細節。

    在.NETframework中提供的用來在COM+中執行的.NET類稱為服務部件(ServicedComponent)。這些類都直接或間接從定義在System.EnterpriseService命名空間的ServicedComponet基類繼承而來。而且在此命名空間中定義的一些屬性指出了怎樣在COM+中配置組件,以及使用哪些服務。2.在.NET中如何建立COM+分布事務處理

    COM+事務處理支持屬性有下而5種可能的屬性值:

    Disabled、NotSupported、Supported、Requied、RequiedNew

    前兩種屬性不支持事務處理。第三種屬性一般用于組件不需要進行事務處理,但運行結果影響到其他需要事務處理組件。Requied屬性需要事務處理,若它的創建者已經在進行事務處理,COM+就會將此組件加入到創建者的事務處理中。若調用者不存在事務處理,則COM+為此組件新建一個事務處理。RequiedNew屬性表明組件需要進行事務處理,但是不管它的創建者是否存在事務處理,需要新建一個事務處理,并在這個新事務處理中運行。

    為此.NETServicedComponent必須完成的任務:

    從ServicedComponent基類繼承而來的.NET類;將.NET事務處理支持屬性TransactionAttribute應用于類聲明中(即上面提到的5個屬性值之一);應用程序集級的.NET屬性規定COM+的應用配置;

    包括ApplicationNameAttribute(規定應用程序建立的名稱);ApplicationActivatonAttribute(規定組件在進程內創建還是在進程外創建);ApplicationAccessControlAttribute(規定了COM+應用的安全層次)

    (1)建立強命名

    (2)注冊組件

    (3)COM+事務處理的生命周期

    Com+事務處理的4個階段的生命周期中前三個階段比較簡單,完成事務處理后,有幾種方式可以決定是否提交事務。可以通過使用3種技術顯式控制事務處理的結果。

    (4)調用ContextUtil方法:

    方法是:SetComplete()、SetAbort()、EnableCommit()、DisableCommit()

    設置ContextUtil屬性:屬性是:DeactiveOnReturn、MyTransactionVote。

    在類定義中應用AutoComplete屬性

    下面用一個簡單的例子給出這一種技術的應用(語言為c#,很容易轉為別的語言):

    調用ContextUtil方法

    usingSystem.EnterpriceServices;

    [TransactionAttribute(TransactionOption.Required)]

    publicclassAccount:ServicedComponent

    //從System.EnterpriceServices.ServicedComponent類繼承

    //允許組件使用COM+服務

    publicvoidUpdateAccount()

    try

    ContextUtil.SetComplete();

    catch(Exceptione)

    ContextUtil.SetAbort();

    Throw(e);

    設置ContextUtil屬性和在類定義中應用AutoComplete屬性與此類似。

    三、結束語

    隨著整個社會信息化進程的加快,需要處理的數據量越來越大,數據處理一致性、完整性、準確性對整個處理系統的性能具有決定性的影響。隨著新一代開發平臺.NETFramework的逐漸推廣,.NET結合COM+的分布式事務應用必將得到很大發展。

    主站蜘蛛池模板: 精品国产一区二区三区| 一区二区亚洲精品精华液| 一区二区三区国模大胆| 综合一区自拍亚洲综合图区| 国产91精品一区| 国产一在线精品一区在线观看| 午夜精品一区二区三区在线观看| 久久国产精品一区| 又硬又粗又大一区二区三区视频| 精品无码AV一区二区三区不卡| 亚洲高清一区二区三区电影| 国产精品综合一区二区| 日韩AV无码一区二区三区不卡毛片| 国产av一区二区三区日韩| 国产乱码一区二区三区爽爽爽| 亚洲av无码一区二区三区天堂古代| 在线观看中文字幕一区| 99国产精品一区二区| 亚洲精品无码一区二区| 无码少妇一区二区浪潮av| 精品一区二区三区免费毛片爱| 国产福利一区二区精品秒拍| 国产成人一区二区三区视频免费 | 日韩高清一区二区三区不卡 | 激情综合丝袜美女一区二区| 亚洲av综合av一区二区三区| 国内精品一区二区三区东京 | 久久精品视频一区| 精品少妇ay一区二区三区 | 精品福利一区二区三区免费视频| 亚欧成人中文字幕一区| 精品乱码一区二区三区四区| 呦系列视频一区二区三区| 国产亚洲一区二区三区在线| 色屁屁一区二区三区视频国产| 中文字幕视频一区| 国产伦精品一区二区三区免费下载 | 亚洲精品色播一区二区| 91成人爽a毛片一区二区| 亚洲综合av一区二区三区| 激情亚洲一区国产精品|