【问题标题】:SSIS: OnPostExecute OnError issueSSIS:OnPostExecute OnError 问题
【发布时间】:2012-04-25 15:33:45
【问题描述】:

我有一个 SSIS 包,我在其中设置了 OnError 和 OnPostExecute 事件处理程序。 Package 是一个简单的循环容器,处理程序 OnPostExecute 工作正常。

但是 OnError 实际上并没有工作。我在 Loop 内的任务中添加了一些错误代码,只是为了测试 OnError 处理程序并且它没有激活。 OnPostExecute 处理程序在循环内的非常进程之后才起作用。

另一方面,我尝试自己执行 OnError 任务,它确实有效。因此,发生错误时不会激活它。

一些信息。我已将循环内的每个任务的 Propagate 系统变量设置为 FALSE,因为我不希望程序包停止。 (也许这与它有关) OnError 处理程序处于 级别。

关于当进程发现错误时不执行 OnError 的任何想法? 谢谢

【问题讨论】:

  • 问题1:当传播为真时它是否有效?问题2:你是如何运行包的? f5?
  • 1.不,它不起作用,不同之处在于程序在第一次错误后停止。但是 OnError 没有被激活。 2.我用鼠标播放按钮运行它,我也试过用F5。谢谢
  • 您的问题解决了吗?使用 SQL Server 的默认日志提供程序,我无法在我的 dbo.sysssislog 表上获得任何 OnError 事件,即使我在“执行结果”选项卡中调试时看到错误也是如此。我的目标是避免自定义 OnError 事件处理程序。
  • 我没有说实话。谢天谢地,我能够继续前进,因为循环内的错误并不重要。我很确定它与包本身有关,因为当出现问题时,其他包确实激活了 OnError 事件。是的,由于公司原因,我总是使用自定义事件处理程序。
  • 经过一番挖掘,我解决了我的问题。我在我的连接管理器上使用 RetainSameConnection=true 属性(我正在管理包内的事务),并且我在 Logging 和包任务之间共享它。当我禁用 RetainSameConnection 时,我获得了预期的 OnError 事件。解决方案是专门为 Logging 创建另一个连接管理器。

标签: ssis onerror


【解决方案1】:

检查“DisableEventHandlers”属性。确保在它未触发的任何任务上将其设置为 false。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-06
    • 1970-01-01
    相关资源
    最近更新 更多