91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ADO.NET的彈性連接控制[ADO.NET idle connection resiliency]

發布時間:2020-07-03 01:19:14 來源:網絡 閱讀:617 作者:張善友 欄目:編程語言

ADO.NET連接SQL Server有時候聯機會無故的中斷 (例如閑置過久或是交易時間太長等因素),這時又要重新連接,在.NET Framework 4.5之前,這件事情要由開發人員自己依照ADO.NET的SqlException來判斷并自行重試,重試的算法也要由開發人員來自定義,所以SQL Database的CAT (Customer Advisory Team) 開發了Transient Fault Framework給Windows Azure的開發人員使用,而.NET Framework 4.5.1則正式將它納入ADO.NET的核心程序代碼中,能夠斷開會話狀態并在適當的時候恢復會話,很多場景都會收益于這個功能.

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

說明

DefaultExecutionStrategy

執行時不包含重試策略,這會自動用于SQL Server以外的數據庫。

DefaultSqlExecutionStrategy

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

DbExecutionStrategy

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

SqlAzureExecutionStrategy

專為SQL Azure Database設計的重試策略,會依照已知的可能瞬斷問題進行自動的重試處理。

上文提到的 Transient Fault Framework 其實Enterprise Library的一個模塊。這個框架考慮到了處理所有可能的瞬態錯誤的需求,在內部實現了一個“Retry Policy”來確保只處理需要的錯誤。在客戶進入重試狀態前會使用策略驗證這個異常是否屬于瞬態錯誤。

  • 提供了一個可擴展的Retry邏輯處理瞬態錯誤,不僅限于SQL Server。
  • 支持一系列的重試方案(固定周期,漸進周期,隨機指數退避)
  • 支持SQL 連接和SQL命令使用不同的Retry策略。
  • SqlConnectionSqlCommand對象提供了擴展方法來實現Retry操作
  • 支持Retry后的回調,通知用戶代碼是否發生了Retry情況
  • 支持快速重試模式,當第一次發生進行Retry時會立即嘗試而沒有延遲
  • 允許在應用程序配置文件中定義Retry策略
  • 支持同步和異步請求

下面是幾個類似的項目:

  • SQL Fault Retry Provider提供了一個如何創建高可用性應用程序的案例,當然特指在SQL Mirroring環境下。并且提供了一個可以進行重試操作的 Data Provider.
  • Endjin Retry Framework:提供了一下TPL的 重試框架
  • Polly: 提供了一個.NET 3.5/4.0/4.5 下都可用的重試庫
  • 通過nuget上 查詢retry可以查到很多相關的項目 https://www.nuget.org/packages?q=retry 

 

譯文:SQL Azure客戶端-瞬態錯誤處理最佳實踐

基于Enterprise Library 6 的AOP實現

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

三穗县| 新余市| 柯坪县| 白银市| 博湖县| 重庆市| 丽江市| 云龙县| 万州区| 哈尔滨市| 交城县| 于田县| 靖边县| 沾益县| 阿拉善右旗| 车致| 丹江口市| 大同市| 屏山县| 林口县| 贵州省| 镶黄旗| 封丘县| 城固县| 江油市| 申扎县| 广汉市| 祁阳县| 全南县| 黄梅县| 盱眙县| 承德县| 台湾省| 长寿区| 集安市| 星座| 青川县| 泰州市| 邮箱| 乌鲁木齐县| 封开县|