疑難排解具有恢復功能的 StreamInsight 應用程式

本主題透過描述具有恢復功能之查詢的必要條件,以及某些可能發生的常見錯誤和失敗,協助您疑難排解具有恢復功能的 StreamInsight 應用程式。

恢復功能僅能在 Premium 版的 StreamInsight 中使用。如需詳細資訊,請參閱<選擇 StreamInsight 版本>。

本主題內容

  • 具有恢復功能之查詢的必要條件

  • 建立並設定具有恢復功能的伺服器時發生錯誤

  • 定義具有恢復功能的查詢時發生錯誤

  • 儲存檢查點時發生錯誤

  • 從失敗復原時發生錯誤

  • 儲存中繼資料並登入網路共用時發生錯誤

具有恢復功能之查詢的必要條件

針對檢查點檢查設定的查詢必須符合下列需求:

  • 此查詢必須有一個輸出配接器。亦即,此查詢無法僅公開已發行的資料流。

  • 此查詢無法取用已發行的資料流。

  • 此查詢無法使用 IObservable 或 IEnumerable 輸入。

  • 此查詢無法使用透過 AdvanceTimeImportSettings 同步處理的資料流,從其他資料流複製 CTI。這個使用方法會在<提前應用程式時間>中描述。

[回到頂端]

建立並設定具有恢復功能的伺服器時發生錯誤

在下列情況下,對 Server.Create 方法的呼叫可能會引發例外狀況:

  • 系統會透過 Server.Create 方法或 app.config 檔案提供具有恢復功能的組態,但是不會指定 SQL Server Compact 中繼資料提供者。

  • 針對恢復功能指定的記錄檔路徑不存在,而且未設定伺服器建立該路徑。

  • 系統會針對伺服器建立記錄檔路徑,但是記錄檔路徑的建立不會發生也不會失敗。

  • 伺服器的權限不足,無法寫入指定的記錄檔路徑,也無法從中讀取。

  • 系統不會針對恢復功能設定伺服器,但是 StreamInsight 的版本不是支援恢復功能的版本。只有 Premium 版支援恢復功能。如需有關 StreamInsight 版本的詳細資訊,請參閱<選擇 StreamInsight 版本>。

[回到頂端]

定義具有恢復功能的查詢時發生錯誤

在下列情況下,透過 CepStream.ToQuery 方法或 Application.CreateQuery 方法建立具有恢復功能之查詢的呼叫可能會引發例外狀況:

  • 系統尚未針對恢復功能提供恢復功能組態,以及指定 SQL Server Compact 中繼資料提供者來設定伺服器。

  • 查詢取用 IEnumerable 或 IObservable 來源中的事件。

  • 查詢取用已發行之資料流中的事件。

  • 查詢使用已同步處理的資料流。

  • 查詢只寫入已發行的資料流。

[回到頂端]

儲存檢查點時發生錯誤

在下列情況下,儲存檢查點的呼叫可能會失敗,而且 EndCheckpoint 方法可能會引發例外狀況:

  • 系統未針對恢復功能設定伺服器。

  • 系統未針對恢復功能設定查詢。

  • 查詢沒有在執行。

  • 檢查點已經在進行中。在此情況下,第一個檢查點會成功;所有後續的重疊檢查點則會失敗。

  • 系統會使用沒有對應到使用中檢查點作業的 IAsyncResult,呼叫 EndCheckpoint 方法。

  • 系統會使用對應到已呼叫 EndCheckpoint 之檢查點的 IAsyncResult,呼叫 EndCheckpoint 方法。

如果在檢查點檢查期間有 I/O 錯誤,則會終止進行中的所有檢查點作業,且其 EndCheckpoint 作業會引發例外狀況。不過,您可以繼續嘗試後續的檢查點作業,因為這個 I/O 失敗可能是暫時性的。

[回到頂端]

從失敗復原時發生錯誤

如果在讀取檢查點檔案時有 I/O 錯誤,則會暫停相依於該檔案的所有查詢,而且會使用查詢記錄失敗的原因。為保留查詢中繼資料,系統會暫停但不中止查詢,因為 I/O 錯誤可能是暫時性的。

如果查詢的復原失敗,就無法重新啟動復原。您可以嘗試下列步驟:

  • 如果失敗可能是暫時性的,請關閉伺服器後重新啟動,以重試復原。

  • 如果失敗不是暫時性的,您可以停止查詢。

如果正在復原的查詢因為運算子或配接器發生例外狀況而失敗,將會中止查詢。

如果嘗試復原查詢導致伺服器失敗,您可以採取下列步驟:

  1. 重新啟動沒有恢復功能的伺服器。

  2. 停止導致伺服器失敗的一個或多個查詢。

  3. 再次重新啟動具有恢復功能的伺服器。

[回到頂端]

儲存中繼資料並登入網路共用時發生錯誤

當檢查點檢查記錄檔儲存在網路共用上時,暫時性的 I/O 錯誤對於檢查點檢查程序並不是嚴重的錯誤。

當中繼資料的 SQL Server Compact 資料庫儲存在網路共用上時,任何 I/O 錯誤都是嚴重的錯誤,而且會導致 StreamInsight 伺服器失敗。

[回到頂端]

請參閱

概念

StreamInsight 恢復功能

建立具有恢復功能的 StreamInsight 應用程式

監視具有恢復功能的 StreamInsight 應用程式