真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ADO.NET的彈性連接控制[ADO.NETidleconnectionresiliency]

ADO.NET連接SQL Server有時(shí)候聯(lián)機(jī)會(huì)無(wú)故的中斷 (例如閑置過(guò)久或是交易時(shí)間太長(zhǎng)等因素),這時(shí)又要重新連接,在.NET Framework 4.5之前,這件事情要由開(kāi)發(fā)人員自己依照ADO.NET的SqlException來(lái)判斷并自行重試,重試的算法也要由開(kāi)發(fā)人員來(lái)自定義,所以SQL Database的CAT (Customer Advisory Team) 開(kāi)發(fā)了Transient Fault Framework給Windows Azure的開(kāi)發(fā)人員使用,而.NET Framework 4.5.1則正式將它納入ADO.NET的核心程序代碼中,能夠斷開(kāi)會(huì)話狀態(tài)并在適當(dāng)?shù)臅r(shí)候恢復(fù)會(huì)話,很多場(chǎng)景都會(huì)收益于這個(gè)功能.

創(chuàng)新互聯(lián)專注于企業(yè)營(yíng)銷型網(wǎng)站建設(shè)、網(wǎng)站重做改版、晉城網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、HTML5建站、商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為晉城等各大城市提供網(wǎng)站開(kāi)發(fā)制作服務(wù)。

ADO.NET Idle Connection Resiliency這個(gè)功能被包裝在Entity Framework 6中,在DbConfiguration設(shè)定DbExecutionStrategy對(duì)象,Entity Framework 6內(nèi)建了四種不同的DbExecutionStrategy[http://msdn.microsoft.com/pt-BR/data/dn456835],分別是:

說(shuō)明

DefaultExecutionStrategy

執(zhí)行時(shí)不包含重試策略,這會(huì)自動(dòng)用于SQL Server以外的數(shù)據(jù)庫(kù)。

DefaultSqlExecutionStrategy

執(zhí)行時(shí)不包含重試策略,但是它會(huì)包裝例外狀況,由使用者決定是否要啟用Connection Resiliency。

DbExecutionStrategy

這個(gè)對(duì)象是所有執(zhí)行策略的基礎(chǔ)類別,它包裝了指數(shù)式重試原則 (exponential retry policy) 算法,并且由實(shí)作來(lái)決定要如何使用這個(gè)算法,以及重試的次數(shù)等。

SqlAzureExecutionStrategy

專為SQL Azure Database設(shè)計(jì)的重試策略,會(huì)依照已知的可能瞬斷問(wèn)題進(jìn)行自動(dòng)的重試處理。

上文提到的 Transient Fault Framework 其實(shí)Enterprise Library的一個(gè)模塊。這個(gè)框架考慮到了處理所有可能的瞬態(tài)錯(cuò)誤的需求,在內(nèi)部實(shí)現(xiàn)了一個(gè)“Retry Policy”來(lái)確保只處理需要的錯(cuò)誤。在客戶進(jìn)入重試狀態(tài)前會(huì)使用策略驗(yàn)證這個(gè)異常是否屬于瞬態(tài)錯(cuò)誤。

  • 提供了一個(gè)可擴(kuò)展的Retry邏輯處理瞬態(tài)錯(cuò)誤,不僅限于SQL Server。
  • 支持一系列的重試方案(固定周期,漸進(jìn)周期,隨機(jī)指數(shù)退避)
  • 支持SQL 連接和SQL命令使用不同的Retry策略。
  • SqlConnectionSqlCommand對(duì)象提供了擴(kuò)展方法來(lái)實(shí)現(xiàn)Retry操作
  • 支持Retry后的回調(diào),通知用戶代碼是否發(fā)生了Retry情況
  • 支持快速重試模式,當(dāng)?shù)谝淮伟l(fā)生進(jìn)行Retry時(shí)會(huì)立即嘗試而沒(méi)有延遲
  • 允許在應(yīng)用程序配置文件中定義Retry策略
  • 支持同步和異步請(qǐng)求

下面是幾個(gè)類似的項(xiàng)目:

  • SQL Fault Retry Provider提供了一個(gè)如何創(chuàng)建高可用性應(yīng)用程序的案例,當(dāng)然特指在SQL Mirroring環(huán)境下。并且提供了一個(gè)可以進(jìn)行重試操作的 Data Provider.
  • Endjin Retry Framework:提供了一下TPL的 重試框架
  • Polly: 提供了一個(gè).NET 3.5/4.0/4.5 下都可用的重試庫(kù)
  • 通過(guò)nuget上 查詢r(jià)etry可以查到很多相關(guān)的項(xiàng)目 https://www.nuget.org/packages?q=retry 

 

譯文:SQL Azure客戶端-瞬態(tài)錯(cuò)誤處理最佳實(shí)踐

基于Enterprise Library 6 的AOP實(shí)現(xiàn)


網(wǎng)站名稱:ADO.NET的彈性連接控制[ADO.NETidleconnectionresiliency]
當(dāng)前網(wǎng)址:http://weahome.cn/article/jedsod.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部