我有一个包含1个容器的包.ssis pacakge失败了,如果那个容器失败了!? 物业
失败时失败 容器是假的。
这是否意味着只有当此属性设置为TRUE时包失败,否则只有容器状态失败,包状态不是!?
答案 0 :(得分:2)
是。如果序列容器失败,整个包将失败。提高序列容器的MaximiumAllowedErrors
属性以获得所需的行为。
下面我们有一个示例包。 Sequence Container有一个永远不会成功的任务。
上面,Sequence Container失败,Package失败。以下是上述容器的属性。这些是新容器的默认值。
现在让我们停下来学习。如果我们将包行为与属性设置进行比较,这看起来是错误的。这里我们设置了FailPackageOnFailure=False
,但序列容器故障导致了包失败。为什么是这样?不直观的属性名称。请参阅this Microsoft Connect问题。你并不孤单。微软的官方解释是这样的。
尽管有一些相当循环的先前消息,但我们相信 功能表现如设计。将FailParentOnFailure设置为时 假,父母不会失败,直到失败的数量 child超过MaximumAllowedErrors阈值。当你设置 FailparentOnFailure为true,父级将在第一次失败 无论MaximiumAllowedErrors如何,都会出现错误 阈。
从该引用中获取的重要信息是FailPackageOnFailure
和MaximiumAllowedErrors
作为一对!!!
所以 - 知道这一点 - 我们可以通过将MaximiumAllowedErrors
计数从1提高到2来实现预期的行为。
这将允许您使序列容器失败,但不会使整个包失败。
希望这有帮助!
答案 1 :(得分:1)
这一切都取决于包装和容器的设置方式。您必须打开/导入它(在SQL Server Business Intelligence Development Studio中)并运行首选测试数据以查看哪个失败。两个容器之间是否存在相互依赖关系?