Share via


資料收集器錯誤處理

資料收集器的設計是要持續執行,這表示可能會發生執行錯誤。資料收集器必須適當地回應兩個廣泛的錯誤類別,這些類別為:

  • 常見、可預知的錯誤。根據集合工作流程、程序和元件行為,許多錯誤都是可以預測的。從這個錯誤類別自動復原不一定總是可行。不過,您可以使用簡單、影響不大的技術來處理這類錯誤,並且讓資料收集再次執行。

  • 意外的錯誤。當發生這類錯誤時,系統不會嘗試從錯誤中自動復原。資料收集器會記錄詳細的錯誤資訊,而這些資訊可用於疑難排解及解決錯誤狀況。此外,系統會停用造成錯誤的封裝或工作,以避免錯誤重複發生。重複發生的錯誤會多餘地耗用系統資源,而且會讓資料收集無法正確運作及順利完成。

在所有情況下,系統都會使用<資料收集器記錄>中所述的記錄機制來記錄錯誤。

常見錯誤

下表列出常見錯誤並描述這些錯誤的可能原因,以及資料收集器要如何加以處理。

錯誤

描述、原因和處理

無法連接到資料提供者。

資料收集器無法連接到伺服器或特定的資料提供者,例如 Transact-SQL。可能的原因包括系統組態及安全性問題。

處理:已記錄錯誤及停止收集組,並將收集組標示為已停用。停用的狀態會記錄在執行記錄中。不會從這個錯誤中自動復原。

會在執行期間卸除與資料提供者的連接。

受到監視的伺服器意外關閉,或是發生連接問題 (如網路連接失敗)。

附註附註
計劃中的關機不屬於這個類別。如果是計劃中的關機,當 SQL Server 和 SQL Server 代理程式執行個體停止時,會關閉收集組。

執行封裝失敗,並記錄錯誤。資料收集器會在短暫的間隔之後嘗試重新啟動此封裝,如果嘗試作業失敗,則收集組會停止並標示為已停用。停用的狀態會記錄在執行記錄中。這個時候的復原就需要手動操作。

無法連接到管理資料倉儲。

資料倉儲安裝在與資料收集器不同的電腦上。可能的原因為網路連接問題或無法使用主機伺服器。這個錯誤只會影響上載封裝。

處理:由於沒有提供有關伺服器關閉的進一步通知,所以無法預期及自動處理這個錯誤。系統會記錄這個錯誤,並在短暫的間隔之後重新啟動上載作業。在四次上載嘗試作業失敗之後,系統會停用此收集組,並將它的狀態寫入執行記錄中。

附註附註
此收集組執行時所收集到的任何資料都會保存及累積起來。如果上載封裝可以連接到資料倉儲,就會上載累積的資料。

在上載期間,會卸除與管理資料倉儲的連接。

資料倉儲安裝在與資料收集器不同的電腦上。可能的原因為網路連接問題或無法使用主機伺服器。這個錯誤只會影響上載封裝。

處理:由於沒有提供有關伺服器關閉的進一步通知,所以無法預期及自動處理這個錯誤。系統會記錄這個錯誤,並在短暫的間隔之後重新啟動上載作業。在四次上載嘗試作業失敗之後,系統會停用此收集組,並將它的狀態寫入執行記錄中。

附註附註
此收集組執行時所收集到的任何資料都會保存及累積起來。如果上載封裝可以連接到資料倉儲,就會上載累積的資料。
附註附註
錯誤之前的交易會標示為失敗,以防止部分上載。當重新建立連接時,就會重新上載這個批次的資料。

從資料提供者收到錯誤。

這可以是任何錯誤,例如無效的參數或是資料收集器所傳送的無效要求。開發期間經常會看到這個狀況,而且很可能會影響開發人員建立自訂收集組或收集器型別。當發生這個錯誤時,收集組會停止並記錄此錯誤。應該要調查這個錯誤,並在錯誤解決之後手動重新啟動收集組。

控制流程中發生錯誤。

封裝控制流程中所定義的邏輯失敗。

處理:如果這個錯誤是可以預知的,而且與特定的封裝有關,請使用 OnError 控制流程路徑來處理它。在許多情況下,此封裝可以從錯誤中自動復原,並自行重新啟動。

資料流程中發生錯誤。

這個錯誤是由資料流程管線所引發,通常分為以下的類別:

  • 資料轉換錯誤,當轉換導致有效位數遺失、無效位數遺失及字串截斷時,就會發生這個錯誤。如果所要求的轉換不受支援,也會發生資料轉換錯誤。

  • 運算式評估錯誤,如果在執行階段評估的運算式執行無效作業,或者,由於遺失或錯誤的資料值而語法不正確,則會發生此錯誤。

  • 查閱錯誤,如果查閱作業無法在查閱資料表中找到相符的項目,就會發生這個錯誤。

處理:將每一個資料元件設定為只有當資料流程錯誤非常嚴重時,才會失敗。根據預設,計算失敗資料列數目之後,系統會將錯誤的資料列重新導向為個別輸出。然後系統會在資料流程完成之後記錄這些資訊,並產生資料流程報表。