【问题标题】:why can not i see onerror event in dbo.sysssislog table为什么我在 dbo.sysssislog 表中看不到 onerror 事件
【发布时间】:2024-04-20 20:15:01
【问题描述】:

我运行了一个 ssis 包,但其中一个任务出错(该任务在序列容器内)。但是当我检查 msdb sysssislog 表时,我看不到任何 那边的ONERROR事件(ONERROR)。让我知道可能是什么原因。请注意,这个包在包的ONERROR事件中有一个任务,它会在包中发生错误时运行。

ON ERRORON TASK FAILED

有什么区别

【问题讨论】:

  • 您在 On Error Event 中执行什么任务?
  • 有一个执行 SQL 任务。此任务从 sysssis 日志中选择一些行并更新我的自定义表之一
  • 在我触发此查询时出现错误后,我找不到返回的任何行 select top 1 source from msdb.dbo.sysssislog where (upper(event) = 'ONERROR')
  • 当您为 SQL 服务器选择 SSIS 日志提供程序时,您是否检查了 OnError 事件
  • 太棒了……这就是原因!!非常感谢

标签: sql sql-server ssis dts


【解决方案1】:

在为 SQL Server 选择 SSIS 日志提供程序时,请检查需要跟踪的事件。我认为您可能错过了检查 ONERROR 事件

【讨论】:

  • 当我选择 ONERROR 事件时它工作正常。但是让我知道另一件事。为什么 SYSSIS 日志表的 SOURCE 列显示包名称而不是任务名称我的意思是选择源从 msdb.dbo.sysssislog where (upper(event) = 'ONERROR') 显示包的名称而不是错误任务的名称
【解决方案2】:

当包因任何原因(包括任务失败)出错时引发 OnError

无论包状态如何,当任务失败时都会引发 OnTaskFailed

您应该在日志中收到错误消息。可能你的配置不正确。

【讨论】:

  • 当我选择 ONERROR 事件时它工作正常。但是让我知道另一件事。为什么 SYSSIS 日志表的 SOURCE 列显示包名称而不是任务名称我的意思是选择源从 msdb.dbo.sysssislog where (upper(event) = 'ONERROR') 显示包的名称而不是错误任务的名称
  • 你应该有 on 任务和包的事件