【问题标题】:How to make different SSIS packages sequential to avoid locking?如何使不同的 SSIS 包按顺序排列以避免锁定?
【发布时间】:2015-11-17 11:00:39
【问题描述】:

我有两个不同的 SSIS 包(ABC、XYZ)在同一台服务器上运行。我希望包 XYZ 仅在包 ABC 未运行时运行。我还希望 XYZ 等到 ABC 完成执行并在 ABC 完成后开始执行。

ABC 每 20 分钟运行一次(通常在 20 分钟内完成,但有时需要更多时间),XYZ 每天运行一次。

我可以在 XYZ 上使用脚本任务 (GetRunningPackages()) 完成上述任务。

还有其他方法吗?请建议上述问题导致锁定。

【问题讨论】:

    标签: sql-server ssis locking ssis-2008


    【解决方案1】:

    您可以将ABC的开始和停止记录到一个表中,然后XYZ可以检查最近的行并且如果有开始值但没有对应的停止值则不开始。

    我们在这方面取得了不错的成果,并且它可以轻松扩展以支持多个包集。

    【讨论】:

    • 感谢 Eric,这听起来是一个有趣且可行的解决方案。但我担心的一个问题是 ABC 每 20 分钟运行一次,因此日志条目会使日志文件膨胀。我的担心对你有意义吗?
    • 是的,但我认为这不是一个重要因素。一个月的处理将导致超过 2k 的日志条目,这对于数据库维护来说是微不足道的。如果需要,请将 XYZ 包设置为在每 24 小时运行一次时删除所有超过 7 天的日志条目。
    【解决方案2】:

    您应该查找进程间通信。 命名信号量将在这种情况下工作,因为它当时只允许一个运行。进程间通信有更多选择。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-04
      • 1970-01-01
      • 1970-01-01
      • 2020-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多