当其中一个容器发生故障时,SSIS包是否会失败

时间:2016-11-30 12:00:34

标签: sql-server events ssis ssis-2012 ssis-2008

我有一个包含1个容器的包.ssis pacakge失败了,如果那个容器失败了!? 物业

  

失败时失败   容器是假的。

这是否意味着只有当此属性设置为TRUE时包失败,否则只有容器状态失败,包状态不是!?

2 个答案:

答案 0 :(得分:2)

是。如果序列容器失败,整个包将失败。提高序列容器的MaximiumAllowedErrors属性以获得所需的行为。

实施例

下面我们有一个示例包。 Sequence Container有一个永远不会成功的任务。

enter image description here

上面,Sequence Container失败,Package失败。以下是上述容器的属性。这些是新容器的默认值。

enter image description here

现在让我们停下来学习。如果我们将包行为与属性设置进行比较,这看起来是错误的。这里我们设置了FailPackageOnFailure=False,但序列容器故障导致了包失败。为什么是这样?不直观的属性名称。请参阅this Microsoft Connect问题。你并不孤单。微软的官方解释是这样的。

  

尽管有一些相当循环的先前消息,但我们相信   功能表现如设计。将FailParentOnFailure设置为时   假,父母不会失败,直到失败的数量   child超过MaximumAllowedErrors阈值。当你设置   FailparentOnFailure为true,父级将在第一次失败   无论MaximiumAllowedErrors如何,都会出现错误   阈。

从该引用中获取的重要信息是FailPackageOnFailureMaximiumAllowedErrors作为一对!!!

所以 - 知道这一点 - 我们可以通过将MaximiumAllowedErrors计数从1提高到2来实现预期的行为。

enter image description here

这将允许您使序列容器失败,但不会使整个包失败。

enter image description here

希望这有帮助!

答案 1 :(得分:1)

这一切都取决于包装和容器的设置方式。您必须打开/导入它(在SQL Server Business Intelligence Development Studio中)并运行首选测试数据以查看哪个失败。两个容器之间是否存在相互依赖关系?