Share via


JournaledGrain 診斷

監視連線錯誤

根據設計,記錄一致性提供者在連線錯誤下具有復原性 (包括儲存體的兩種連線,以及叢集之間的連線)。 但容忍錯誤並不夠,因為應用程式通常需要監視任何這類問題,並在問題很嚴重時請操作員加以注意。

JournaledGrain 子類別可以覆寫下列方法,以在觀察到連線錯誤,以及這些錯誤獲得解決時接收通知:

protected override void OnConnectionIssue(
    ConnectionIssue issue)
{
    /// handle the observed error described by issue
}

protected override void OnConnectionIssueResolved(
    ConnectionIssue issue)
{
    /// handle the resolution of a previously reported issue
}

ConnectionIssue 是抽象類別,其中包含數個描述問題的常見欄位,包括自上次連線成功以來觀察到的次數。 實際的連線問題類型是由子類別所定義。 連線問題分為幾種,例如 PrimaryOperationFailedNotificationFailed,有時會有進一步精簡類別的額外索引鍵 (例如 RemoteCluster)。

例如,如果相同類別的問題發生數次 (例如,我們持續取得以相同 RemoteCluster 為目標的 NotificationFailed),則每次都會由 OnConnectionIssue 進行回報。 一旦此類問題獲得解決 (例如,我們最後成功將通知傳送至此 RemoteCluster),然後,呼叫一次 OnConnectionIssueResolvedissue 物件會與 OnConnectionIssue 前一次回報的物件相同。 獨立類別的連線問題及其解決方式會個別回報。

簡單統計資料

我們目前提供基本統計資料的簡單支援 (在未來,我們可能會以較標準的遙測機制取代此機制)。 您可以呼叫下列項目來啟用或停用 JournaledGrain 統計資料收集:

void EnableStatsCollection()
void DisableStatsCollection()

您可以呼叫下列項目來擷取統計資料:

LogConsistencyStatistics GetStats()