如何从SSIS控制流检查作业状态?
时间:2020-03-05 18:46:31 来源:igfitidea点击:
这是我的情况,我有一个SSIS作业,该作业取决于另一个先前运行的SSIS作业。在启动第二份工作之前,我需要能够检查第一份工作的状态。将第二个作业添加到第一个作业的工作流中是不可行的,因为它已经太复杂了。我希望能够从第二个作业中检查第一个作业的状态(失败,成功,当前正在执行),并以此为条件来决定第二个作业应该运行还是等待重试。我知道可以通过在运行作业的SQL Server上查询MSDB数据库来完成。我想知道有没有更简单的方法,例如可能使用WMI数据读取器任务?有人有这个经验吗?
解决方案
回答
我们可能要创建第三个程序包,先运行packageA,然后运行packageB。第三个程序包仅包含两个执行程序包任务。
http://msdn.microsoft.com/en-us/library/ms137609.aspx
@克雷格
状态表是一个选项,但是我们必须继续对其进行监视。
这是一篇有关SSIS中事件的文章,是针对原始问题的。
http://www.databasejournal.com/features/mssql/article.php/3558006
回答
为什么不使用桌子?只需让第一项工作用其状态更新表即可。第二项作业可以使用该表检查状态。如果我正确阅读问题,那应该可以解决问题。该表应该(应该)只有一行,因此它不会降低性能,也不会引起任何死锁(当然,既然我写了它,它将发生):)
@Jason:是的,我们可以监视它,也可以在收到结束状态时触发触发器开始第二个作业。 :)