2013-08-04 40 views
1

SSIS情景異常在SSIS包動態連接

我有類型的對象的SQL變量處理。它包含到不同服務器/數據庫的所有連接。我想要逐一連接到這些數據庫並運行查詢。

預期異常處理

如果SSIS連接管理器(動態連接管理器)是無法找到服務器(可能是服務器已關閉),我想跳過該連接的連接(數據庫/服務器)並將其記錄到表中並移至下一個連接(數據庫/服務器)。 SSIS包不應該崩潰。

我的實現

我已經成功地配置SSIS包通過類型對象的SSIS變量使用連接管理器(動態連接管理器)和foreach循環迴路。但如果找不到服務器/數據庫,我無法跳過連接。它會生成服務器/數據庫未找到/連接問題和SSIS包失敗的錯誤。

我在SSIS的經驗是隻有一個星期的

任何幫助將不勝感激。

回答

0

我不認爲一旦遇到錯誤,它可能會繼續執行包。您需要通過SQL Server表(或任何其他表)來控制此行爲。

一旦包失敗,您可以在表中設置一個標誌,說明包失敗。下次運行包時,您可以從此開始並繼續執行。但自動跳過下來的服務器是有點拉出一頂帽子兔子。

另一種可以做到這一點的方法是在每個服務器處理一個單獨的包之前ping每個服務器並將ping結果存儲在一個表中。只挑選那些ping結果爲肯定的記錄(服務器)。否則,請跳過服務器。

+0

我做了IT。使用腳本任務。我使用腳本任務連接到服務器。我在try catch循環中添加了SSIS連接管理器類,併爲此調用了連接。當它引發一個異常,它找不到服務器時,我會捕獲它並返回(int)Scriptresult.succes,以便它不會停止執行進程 您正在談論SSIS中的檢查點。他們習慣於從他們離開的狀態開始。 –

+0

很高興知道你解決了這個問題,但我不是在談論檢查站。沒關係。你有解決方案! – rvphx

+0

好的,謝謝你的幫助。 –

0

如何設置 - >任務的部隊執行結果屬性成功

0

我一直在尋找相同的修訂過。似乎正常的OnError事件處理不適用於連接到源數據庫時出現的問題。

還有另一個解決辦法,我想提及。您可以處理數據流任務中的錯誤(OnError Eventhandler,將該Eventhandler中的System-Variable「Propagate」設置爲false)。我認爲這仍然是必需的,但不確定。我也使用它來記錄異常。

然後,您可以將ForEachLoop中的MaximumErrorCount設置爲「0」(表示無限制)。我不完全確定它爲什麼有效,但試圖找到一種方法來處理您描述的情況,我發現這一點。

==

只是作爲一個有趣的現象:爲了進行調試我添加了一個的OnError事件處理程序的foreach循環,並在虛擬腳本設置一個斷點。它從未到達過。儘管如此,ForEachLoop一直失敗,直到我將MaximumErrorCount設置爲0.