2013-03-16 117 views
1

我有一個MAIN SSIS包,它在內部調用2個子包。在SSIS中等待某個時間戳

這個MAIN pkg一起觸發2個包(使用執行進程任務「dtexec/DTS」),並且有一個業務規則來查看某個時間戳的表列,並等到該時間戳是今天的日期(此時間戳是由第三方更新)。

我目前使用foreach循環來檢查這個時間戳,但是我使用的是T-SQL語句睡各間10分鐘重試即:

WAITFOR DELAY '00:10:00' 

我的問題是,將這一等待HANG整個MAIN SSIS包裝或只是這個孩子包裝?

此外,如果有更好的方法實現此功能,以便兩個孩子pkgs可以並行運行而不會彼此掛在一起?

回答

1

它會掛住整個主SSIS包嗎?如果你的主包在這一步有先例,那麼整個包就會等待。您可能希望考慮使用10分鐘的循環來調用SQL代理作業中的主包。

但觸發想法更好。

+0

要檢查我的關心好,當我說會的主要PKG等待我的意思是,如果孩子PKG 2並行做一些處理這個包是處於等待狀態,我的孩子pckg 2還掛起或意志繼續處理?這兩個孩子pkgs之間沒有關係,一旦孩子pkgs完成,唯一的關係就是成功的電子郵件。 – 2013-03-18 12:17:52

+0

沒有也不會等待,這將並行運行。但爲什麼你不測試它並看到? – 2013-03-18 22:29:18

0

一些想法: 關於包裝設計: 將您的兩個子包裝放在父包裝的控制表面上的順序容器內。不要將它們「連接」在一起,以便它們平行運行。在序列容器外放置執行sql任務。該任務將檢查由第三方更新的時間戳。使用條件來決定序列容器是否被執行。

你打算如何安排你的父母包? 創建一個sql作業來運行該包。 如果日期正確,我們可以在表格上創建一個可以調用作業的觸發器。相關鏈接:http://www.tek-tips.com/viewthread.cfm?qid=270744

這是一個有趣的問題。請發佈您的發現和解決方案說明。祝你好運!