2008-09-02 50 views
3

这是我的场景 - 我有一个SSIS作业,它依赖于另一个以前的SSIS作业运行。在我启动第二个工作之前,我需要能够检查第一个工作的状态。将第二份工作添加到第一份工作流中是不可行的,因为它已经太复杂了。我希望能够从第二个作业中检查第一个作业的状态(失败,成功,当前正在执行),并将其用作决定第二个作业是应该运行还是等待重试的条件。我知道这可以通过查询运行作业的SQL Server上的MSDB数据库来完成。我想知道有一种更简单的方法,比如可能使用WMI数据读取器任务?任何人都有这种经历?如何从SSIS控制流程检查作业状态?

回答

4

您可能想要创建第三个包,运行packageA然后packageB。第三个包只包含两个执行包任务。

http://msdn.microsoft.com/en-us/library/ms137609.aspx

@Craig 一个状态表,是一种选择,但你必须随时监控它。

这是关于SSIS中的事件的原始文章,您原来的问题。
http://www.databasejournal.com/features/mssql/article.php/3558006

+0

感谢您的链接。我想我最好的选择是把工作抽象成控制他们的主要工作。 – 2008-09-03 03:07:32

0

为什么不使用表?只需要第一份工作就会更新表格的状态。第二项工作可以使用该表来检查状态。如果我正确地阅读这个问题,那应该会有诀窍。该表将(应该)只有一行,所以它不会造成性能死亡,也不应该造成任何死锁(当然,现在我写它,它会发生):)

@Jason:是的,你可以监控它,也可以在收到结束状态时触发器开始第二项工作。 :)