日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件園多重安全檢測下載網(wǎng)站、值得信賴的軟件下載站!
      軟件
      軟件
      文章
      搜索

      首頁編程開發(fā)其它知識 → WCF事務的概念與入門詳解 事務具有原子性、一致性、隔離性、和持久性

      WCF事務的概念與入門詳解 事務具有原子性、一致性、隔離性、和持久性

      相關軟件相關文章發(fā)表評論 來源:本站整理時間:2010/9/19 22:18:45字體大。A-A+

      作者:佚名點擊:187次評論:0次標簽: WCF

      • 類型:源碼相關大。79KB語言:中文 評分:5.0
      • 標簽:
      立即下載

      WCF事務是維持系統(tǒng)一致性并合理實現(xiàn)錯誤恢復的最好方法,這也是WCF事務的意義,事務具有原子性、一致性、隔離性、和持久性,其他的管理方式是使用類似ADO.NET的編程模型來

      管理。因為事務協(xié)調的問題(尤其在分布式事務上),WCF使用了一個叫“兩階段提交事務管理協(xié)議”,在第一階段事務管理器詢問參與事務的資源,了解提交修改記錄時是否有所

      保留,在第二階段,如果第一階段投票要求提交事務,則事務管理器將通知修改,反之,則會滾所作修改。

      事務傳播
      為了實現(xiàn)事務傳播,則必須啟用綁定,方法是在宿主配置文件中將TransactionFlow設置為true.

      WCF還提供了TransactionFlowAttribute方法特性,控制客戶端是否將事務傳播到服務,他包含如下定義:

      TransactionFlowAttribute.NotAllowed,客戶端禁止事務流
      TransactionFlowAttribute.Allowed,允許但不肯定
      TransactionFlowAttribute.Mandatory,必須使用事務流

      事務協(xié)議
      根據(jù)事務參與放執(zhí)行范圍,WCF會提供不同事務管理協(xié)議,有輕量級協(xié)議、OleTx協(xié)議、WS原子性協(xié)議,輕量級協(xié)議為程序級協(xié)議,即只能在程序域中使用事務傳播,OleTX為機器級

      協(xié)議,只能在本地計算機傳播,WS原子協(xié)議使用HTTP協(xié)議可以跨Internet。

      TCP,IPC默認使用OleTx協(xié)議,我們可以在配置文件的綁定中定義:transactionProtocol=“WSAtomicTransactionOctober2004”轉換為WS原子性協(xié)議。


      事務管理器
      WCF為我們提供第三方的事務管理器,來管理事務。這三個事務管理器分別是:輕量級事務管理器(LTM)、核心事務管理器(KTM)、分布式事務協(xié)調器(DTC),WCF能動態(tài)的為我

      們分配管理器,當一個管理器不能滿足需求,WCF就會請求上一級的管理器來處理問題。


      聲明事務
      當明白了上面的內容,我們還需要聲明事務,為了擁有一個事務,WCF必須標識每個契約方法,方法是設置TransactionScopeRequired=true,如:

      Class Myservice:IMyContract

      {

      [OperationBehavior(TransactionScopeRequired=true)]

      Public void MyMethod()

      {

      Transaction transaction=Transaction.Current;//獲取一個環(huán)境事務的引用

      Debug.Assert(transaction!=null)//如果為空,則環(huán)境事務不存在

      }

      }

       

      事務的傳播模式
      不同的綁定事務流屬性(TransactionFlow)、契約中的事務流選項(TransactionFlowAttribute)、事務范圍屬性(TransactionScopeRequired)決定了事務將以何種模式進行傳

      播,根據(jù)不同組合,可得到Client/Service、Client、Service、None四種不同的情況(具體配置方法參照《Programming WCF Services》中的介紹),Client/Service能使用客戶

      端的事務,Client必須使用客戶端事務,Service則確保服務必須有一個事務,None則永遠不使用事務

       

      投票完成事務
      前面已經(jīng)學習了WCF的服務傳播方法,但是卻不知道WCF的事務何時提交或何時終止,所以我們投票決定事務的完成方式,WCF提供了自動和顯式兩種投票方式:

      1,自動投票:

      事務投票只需要在聲明事務時,再聲明TransactionAutoComplete值為true即可,如:

      [OperationBehavior(TransactionScopeRequired=true,TransactionAutoComplete=true)]
      Public void MyMethod()

      {

      }

      2.顯式投票:
      顯式投票首先關閉自動投票,即TransactionAutoComplete=false,
      在服務操作返回結果前使用OperactionContext.Current.SetTransactionComplete();

      事務的屬性
      事務可以設置隔離級別和超時時間,分別為設置ServiceBehavior的TransactionIsolationLevel和TransactionTimeout的值

        相關評論

        閱讀本文后您有什么感想? 已有人給出評價!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評論

        最新評論

        發(fā)表評論 查看所有評論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字數(shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)