2016-07-21 61 views
0

我使用OnError事件处理程序创建了一个SSIS包,该处理程序在数据库中插入一些日志记录。SSIS OnError事件处理程序不会触发失败的数据库连接

当我通过批处理文件运行程序包时,在我的批处理文件日志中看到程序包未能执行,因为连接到数据库(与插入错误日志的数据库不同)失败。但是,没有插入的日志记录(意味着OnError事件处理程序未触发?)

OnError事件处理程序在连接到数据库失败时未触发吗?

+0

为什么downvote? –

回答

3

找到它。全包的DelayValidation属性必须设置为,以便连接管理器(和其他的东西,我认为)的验证为不执行,直到运行时

OnError事件处理函数不是解雇因为它只在运行时才起作用。但是,在运行时会发生预验证,并且预验证发现连接到数据库的某个连接不起作用时,包会失败。

0
  1. 是否确定连接到错误记录数据库是有效的。你可以尝试在别处写作来证明它是正确的 - 文本文件?
  2. 将一些代码添加到OnTaskFailed事件中,以防您未到达OnError事件。
  3. FailPackageOnFailure设置为true

虽然你可能不想离开步骤2和3的地方,直到永远,他们将让你得到你的当前问题的底部。

+0

试了一下,但没有真正射击onerror和ontaskfailed –

+0

不是真的射击? – BIDeveloper

+0

yup :(我创建了onerror事件处理程序,所以我可以知道在执行过程中的任何错误我认为最简单的方法来测试事件处理程序是将一个不正确的连接字符串放在我的dtsConfig但它不会被解雇。文件(来自批量作业)说包失败。 –