Microsoft Dynamics CRM Online 嚴重損壞修復
發行︰ 2016年11月
適用於: Dynamics CRM 2015
嚴重損壞修復是 Microsoft Dynamics CRM Online 從計劃或不在計劃之中服務中斷復原的功能。 計劃的服務中斷範例是一般定期的資料中心系統維護。 不在計劃之中的服務中斷範例是資料中心的主要電腦系統或網路元件失敗。 對於任一情況下,您暫時遺失對組織資料與 Microsoft Dynamics CRM Online 服務的存取。
計劃的服務中斷之前在 Web 應用程式或 Dynamics CRM for Outlook 有告示,識別服務維護日期和時間,讓企業可能規劃其組織資料存取之中斷。 不在計劃之中的服務中斷造成組織目前進行不在計劃之中維護的通知。
當失敗或嚴重損壞發生時,Microsoft Dynamics CRM Online 資料中心的管理員套用定義良好的程序,從服務中斷還原。 從這些服務中斷復原的程序和軟體稱為「嚴重損壞修復容錯移轉」。 您的 Microsoft Dynamics CRM Online 資料中心在不同的伺服器上維護組織資料重複與同步 (替代) 複本。 如果是在您沒有資料存取權的資料中心發生嚴重損壞,監控資料中心的系統管理員可以將存取權從主要組織切換至此替代組織,因此將服務中斷降至最低。 當更正失敗時,主要組織的服務存取可復原。
此復原在資料中心發生,對您和您的 .NET Managed 應用程式而言是通透處理。 不過,有一個應用程式開發人員必須處理的問題:資料遺失。 當 Microsoft Dynamics CRM Online 服務發生失敗時,您的應用程式使用 Web 服務呼叫執行的資料變更作業可能無法成功完成。 這可能會造成資料遺失。 本主題的下列各節描述如何撰寫應用程式處理資料遺失問題。
本主題內容
開發容錯移轉復原的 .NET Managed 程式碼應用程式
開發容錯移轉復原的非 .NET 應用程式
最佳作法
開發容錯移轉復原的 .NET Managed 程式碼應用程式
開發人員可藉由實作程式碼檢查和正常處理容錯移轉事件,撰寫其應用程式用以考慮到資料中心失敗與復原。 應用程式可以訂閱 EndpointSwitched 和 EndpointSwitchRequired 通知事件。 這些事件也可以用於衍生類型,如 OrganizationServiceProxy。 如需這些事件的詳細資訊,請參閱 ServiceProxy<TService> 類別文件。
您的應用程式可以檢查 EndpointAutoSwitchEnabled 屬性,判斷是否為組織啟用自動容錯移轉行為。 如果組織中容錯移轉替代端點可用,此屬性設定為 true。 當 EndpointAutoSwitchEnabled 是 true 時,除了選擇性訂閱通知事件之外,您的應用程式不需要其他特殊的程式碼。
嚴重損壞事件和容錯移轉的一般應用程式邏輯流程
在 Microsoft Dynamics CRM Online 資料中心發生嚴重損壞事件。
您的應用程式透過服務 Proxy 類別物件進行服務呼叫:OrganizationServiceProxy、DiscoveryServiceProxy。
在嘗試服務呼叫之後,服務 Proxy 類別物件接收例外狀況。
如果呼叫的目標組織沒有啟用容錯移轉,請移至步驟 9。
擲回 EndpointSwitchRequired 事件。
擲回 EndpointSwitched 事件。
服務 Proxy 類別物件自動重試呼叫。
如果第二次呼叫成功,應用程式正常繼續執行。
如果這個呼叫並未成功,例外狀況傳回至應用程式:EndpointNotFoundException、TimeoutException、FaultException<OrganizationServiceFault> 其中 fault.Detail.ErrorCode == -2147176347。
您可能想要實作程式碼,檢查在收到端點切換事件後可能的資料遺失與正確處理事件。
在資料中心修正影響主要組織端點的嚴重損壞之後,計劃的組織維護中,會發生從替代端點 URL 復原至組織的主要端點 URL。
開發容錯移轉復原的非 .NET 應用程式
不連結 Microsoft Dynamics CRM SDK 組件的應用程式,例如使用 SOAP 或 ODATA 存取 Web 服務的 Java 應用程式,可以嘗試存取目標組織的容錯移轉 URL。 容錯移轉替代組織的 URL 與主要組織 URL 相同,但在組織名稱加上「--S」。 例如,名稱為 Contoso 的組織有下列表格中顯示的主要與替代 URL。
主要組織 URL |
替代組織 URL |
---|---|
https://CONTOSO.API.CRM.DYNAMICS.COM |
https://CONTOSO--S.API.CRM.DYNAMICS.COM |
對於非 .NET 連線的應用程式,您的應用程式沒有可以訂閱接收服務中斷和容錯移轉通知的通知事件。 在服務中斷時您的應用程式會開始收到許多錯誤例外狀況,視前面所列。 這時,應用程式會嘗試連線至目標組織的容錯移轉替代 URL。 在更正嚴重損壞之後,計劃的組織維護中,會發生復原至組織的主要 URL。
最佳作法
下列清單描述您可以在應用程式中實作的最佳作法,確保應用程式在處理服務中斷與失敗復原時更為健全。
撰寫應用程式碼檢查 EndpointAutoSwitchEnabled 屬性值,判斷是否設為 true。 如果 true,考慮訂閱 EndpointSwitched 和 EndpointSwitchRequired 通知事件。
如果您的應用程式處理重要資料,並發生資料遺失失敗,請撰寫事件處理常式程式碼或攔截指定的例外狀況,適當處理嚴重損壞事件和容錯移轉以符合業務需求。
另請參閱
© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權