2012-04-26 43 views
2

我希望發送郵件或在其他服務器上的作業成功完成後自動在我的服務器上啓動作業。我可以訪問其他服務器並可以查看作業狀態,但我無法更改運行SSIS包的作業本身。如何在另一臺服務器上的作業完成時啓動作業或進程?

基本上,我希望在源停止刷新後立即開始刷新數據庫(通過在作業中運行ETL)。我很想在這個Windows服務實現旁邊提出建議。

+1

您可以讓第三方調用Web服務,或者是您的觸發器在文件停止寫入時執行操作嗎? – Seph 2012-04-26 09:54:40

+0

兩個基本選項。 '1.'讓第三方推送'完成'信息。 '''自己輪詢第三方,當你看到它已經完成時開始ETL。 '問題?'如果第三方被允許在你的服務器上調用一個SP,或者你可以在你的服務器上使用SQL Server代理,那麼*特別*會被證明是你的障礙? – MatBailie 2012-04-26 10:13:25

+0

微軟SSIS,我們在SQL Server 2008中編寫作業,它們選取這些ETL包和配置文件並運行。 – Vaibhav 2012-04-26 10:46:16

回答

1

我冒昧地編輯問題和標題,使其更加明確。根據我的理解,您希望在服務器B上的作業成功完成時在服務器A上運行作業(或啓動其他進程)。您無法更改服務器B上的作業定義,但可以登錄並查看作業歷史記錄。

如果您無法更改服務器B上的作業或其他任何內容,那意味着它在作業完成時無法通知服務器A.因此,您需要從服務器A查詢服務器B,使用Windows服務或可能每隔幾分鐘(或幾小時或適當的任何情況)運行的簡單腳本。

您可以使用SMO Job類或使用sp_help_job過程從TSQL查詢來自.NET或PowerShell的作業狀態。哪一個更好的解決方案取決於你想如何實現你的輪詢機制。

+0

非常感謝您更新我蹩腳的書面問題^。^。我將實施其中一種建議方法,並在完成時將您的答案標記爲正確。 – Vaibhav 2012-04-30 06:59:44

相關問題