Sql server SSIS OnError事件处理程序在数据库连接失败时未触发

Sql server SSIS OnError事件处理程序在数据库连接失败时未触发,sql-server,ssis,Sql Server,Ssis,我创建了一个SSIS包,其中包含一个OneError事件处理程序,可以在数据库中插入一些日志记录 当我通过批处理文件运行包时,我在批处理文件日志中看到包未能执行,因为与数据库的连接(与插入错误日志的数据库不同)失败。但是,没有插入日志记录(意味着OneError事件处理程序没有启动?) 当与数据库的连接失败时,OnError事件处理程序是否不启动 您确定与错误日志记录数据库的连接有效吗。你可以试着在其他地方写,以证明它是可以的-文本文件 如果您没有到达OnError事件,请向OnTaskFail

我创建了一个SSIS包,其中包含一个OneError事件处理程序,可以在数据库中插入一些日志记录

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

当与数据库的连接失败时,OnError事件处理程序是否不启动

  • 您确定与错误日志记录数据库的连接有效吗。你可以试着在其他地方写,以证明它是可以的-文本文件
  • 如果您没有到达OnError事件,请向OnTaskFailed事件添加一些代码
  • FailPackageOnFailure
    设置为True
  • 尽管您可能不想永远保留第2步和第3步,但它们将允许您了解当前问题的真相

  • 您确定与错误日志记录数据库的连接有效吗。你可以试着在其他地方写,以证明它是可以的-文本文件
  • 如果没有到达OnError事件,请向OnTaskFailed事件添加一些代码
  • FailPackageOnFailure
    设置为True

  • 尽管您可能不想永远保留步骤2和步骤3,但它们将使您能够了解当前问题的真相。

    找到了它。整个包的DelayValidation属性必须设置为True,以便在运行时之前不执行连接管理器(以及我认为的其他内容)的验证


    OnError事件处理程序不会被激发,因为它只在运行时工作。但是,预验证发生在运行时之前,当预验证发现到DB的一个连接不工作时,包将失败。整个包的DelayValidation属性必须设置为True,以便在运行时之前不执行连接管理器(以及我认为的其他内容)的验证


    OnError事件处理程序不会被激发,因为它只在运行时工作。但是,预验证发生在运行时之前,当预验证发现到DB的一个连接不工作时,包失败

    尝试了所有连接,但没有在onerror和OntaskFailed上真正启动。没有真正启动?是的:(我创建了onerror事件处理程序,以便在执行过程中知道任何错误。我认为测试事件处理程序的最简单方法是在dtsConfig中放入不正确的连接字符串。但它不会被触发。尽管日志文件(来自批处理作业)表示程序包失败。尝试了所有操作,但没有在onerror和OntaskFailed上真正启动。没有真正启动?是的:(我创建了OneError事件处理程序,以便在执行过程中知道任何错误。我认为测试事件处理程序的最简单方法是在我的dtsConfig中放入不正确的连接字符串。但它没有被触发。尽管日志文件(来自批处理作业)说包失败。