亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

麻城市| 奉节县| 泗洪县| 绥芬河市| 吴旗县| 黄冈市| 寻甸| 扬州市| 阜宁县| 电白县| 宕昌县| 隆安县| 株洲市| 曲阜市| 新建县| 石狮市| 宣武区| 新竹市| 和静县| 新密市| 油尖旺区| 上蔡县| 宣化县| 上饶县| 准格尔旗| 噶尔县| 奎屯市| 赤城县| 洛宁县| 信宜市| 资阳市| 永平县| 泸西县| 阿勒泰市| 顺义区| 赞皇县| 克什克腾旗| 福鼎市| 枞阳县| 新巴尔虎右旗| 贵溪市|