【问题标题】:Why won't my failure flow initiate when SSIS sequence container fails?当 SSIS 序列容器失败时,为什么我的失败流程不会启动?
【发布时间】:2011-11-26 00:00:32
【问题描述】:

我有一些 SSIS 序列容器,如果其中的任何任务失败,我想将流程引导到清理所有内容的 SQL 任务,这样我就可以解决问题并再次运行它而不会出现重复数据。我的问题是,即使其中一个序列容器中的某些内容发生故障,我也无法将流定向到 SQL 任务中。似乎这应该是默认行为,但一定有一些我想念的设置。我尝试设置 FailParentOnFailure,但这所做的只是阻止包的其余部分运行。我会插入一张图片来帮助理解我设置的内容,但我猜我的声誉还不够好。 :P

【问题讨论】:

  • 您始终可以链接到 twitpic 之类的异地主机或其他类似的提供商。否则,请描述您如何尝试错误处理,而不是摆弄 FailParentOnFailure 设置。
  • 基本上我所拥有的只是序列容器内的一些数据流任务。如果这些数据流任务中的任何一个失败(如果说我试图加载到数据库的文本文件不可用),那么我希望序列容器遵循“失败”优先约束而不是“成功”一个.但不是做任何一个,它只会杀死整个包裹。如果默认情况下它不遵循“失败”优先约束,那么我不明白有失败优先约束的意义是什么。

标签: ssis containers sequence constraints operator-precedence


【解决方案1】:

我认为在这种情况下,一张图片肯定可以帮助其他人回答我的问题。如果它们失败,我有 3 个序列容器都指向同一个 SQL 任务。如果任何序列容器出现错误,我希望 SQL 任务运行,因此必须将优先约束设置为逻辑 OR,否则它永远不会运行,除非所有 3 个容器都发生故障。将其更改为 OR,它就像我想要的那样工作。

【讨论】:

  • 我有一个容器,如果失败,我希望包执行另一个容器来进行日志记录和电子邮件通知。我已将流程设置为失败而不是成功,并为错误包添加了事件处理程序,它将错误描述填充到变量中。无论如何,该软件包似乎都会失败,而无需进入故障容器。你能建议吗?
【解决方案2】:

确保单击约束上的编辑并将多个约束的最后一部分更改为 OR,以便如果其中任何一个失败,它们将执行任务,否则它将等待所有约束都失败。

【讨论】:

    【解决方案3】:

    检查序列容器属性,如果 FailPackageOnFailure=true 它不会触发“故障优先约束”。

    【讨论】:

      【解决方案4】:

      如果没有关于序列容器的更多详细信息,就很难确定问题所在。

      我会尝试检查容器的Propagate 系统变量。 每当您的任务可能失败并且您不希望整个程序包停止时,请确保执行以下操作之一:

      • 转到Event Handlers 并在OnError 事件上做一些事情以 处理失败或
      • 将该任务的Propagate系统变量设置为False

      我会提供一些屏幕截图,但我没有足够的代表。相反,我会为您提供一些链接,其中包含有关此主题的更多信息:

      与您的问题类似:http://sqlserverselect.blogspot.com/2010/12/ssis-foreach-loop-container-continue-on.html

      关于事件传播的详细信息:http://simonworth.wordpress.com/2009/11/11/ssis-event-handler-variables-propagate/

      【讨论】:

      • 这是否意味着我必须为每个序列容器设置 OnError 事件处理程序?我只想将它们中的任何一个失败定向到单个 SQL 任务,以删除已插入数据库的任何内容。我的序列容器中只是有几个数据流任务,没什么特别的。 (见我上面的评论)
      • 我说你可以简单地将每个序列容器“OnError”事件上的propagate系统变量设置为false。这应该使您的序列容器将工作流重定向到 sql 任务而不停止整个包。
      • 我理解正确,您是说为序列容器创建一个 OnError 事件处理程序,但将其留空并将传播 sys var 设置为 false?还是实际上需要在事件处理程序中至少有一项任务?
      • 没关系,我在这个问题上回答了我自己的问题。不过,感谢您的帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-21
      • 1970-01-01
      • 1970-01-01
      • 2022-07-21
      • 1970-01-01
      • 2015-01-07
      • 2010-12-15
      相关资源
      最近更新 更多