2012-04-26 56 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

相关问题