【问题标题】:SSIS Package DB Connection checkSSIS 包数据库连接检查
【发布时间】:2013-10-17 11:39:18
【问题描述】:

我有一个连接到数据库的 SSIS 包。我把数据库拿下来测试一个场景,但是当数据库离线时启动包时,包在输出窗口中给了我以下错误:

SSIS 错误代码 DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。对连接管理器“DBNAME”的 AcquireConnection 方法调用失败,错误代码为 0xC0202009。在此之前可能会发布错误消息,其中包含有关 AcquireConnection 方法调用失败原因的更多信息。

我需要在程序包运行时检查连接,并通过电子邮件通知用户数据库已关闭。我该怎么做呢?

我有发送电子邮件的代码,我只需要在运行包时进行数据库检查。

【问题讨论】:

    标签: ssis


    【解决方案1】:

    使用脚本任务。尝试打开与数据库的连接,如果失败则 Dts.TaskResult = Dts.Results.Failure。

    这里有一篇关于这个问题的好帖子:

    http://social.msdn.microsoft.com/Forums/sqlserver/en-US/7de0216b-3a0a-40ce-8149-f566a05010c9/ssis-check-database-connection-and-if-disconnected-send-email-alert?forum=sqlintegrationservices

    【讨论】:

    • 问题是我的包一启动它就什么也不做,因为它无法获取到数据库的连接。
    • 您不需要将数据源添加到您的包中。只需添加一个脚本任务。
    • 我试过了,但没有帮助。它不会进入脚本任务,它只是开始并结束说:SSIS 错误代码 DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER。对连接管理器“DBNAME”的 AcquireConnection 方法调用失败,错误代码为 0xC0202009。在此之前可能会发布错误消息,其中包含有关 AcquireConnection 方法调用失败原因的更多信息。
    • 从您的连接管理器中删除所有内容......你不需要它!
    • 我在数据流任务中使用我的方式
    【解决方案2】:

    让您的数据库检查发生在您的包裹外部。包是如何运行的?在 SQL 代理中安排或由用户启动?首先运行一个检查连接性的脚本,即使用 SQLCMD.EXE,而不是仅仅运行 DTEXEC。

    但真正更好的方法是正常运行包,然后检查 SSIS 日志并发送适当的消息。否则,您将准备运行各种不同类型的自定义执行前检查。

    我不是批处理脚本专家,但这里有一段代码示例,您可以使用它来测试与 SQL Server 的连接,如果失败则调用另一个批处理脚本,否则使用 DTEXEC 运行包。

    SQLCMD -S YOurServer -E -Q "SELECT @@VERSION"
    IF ERRORLEVEL 1 (
          CALL YourEmailScript.CMD
    )
    ELSE
    (
    DTExec /f "\\pathtodtsxfile\file.dtsx"
    )
    

    这不是生产质量代码。我不建议以这种方式调用您的 DTEXEC,这只是一个示例。

    【讨论】:

    • 我正在通过这样的批处理文件运行文件:DTExec /f "\\pathtodtsxfile\file.dtsx"
    【解决方案3】:

    我终于让它工作了。我所做的是,使用数据库设置、数据源、初始目录等创建一个 XML 文件。然后添加一个脚本任务,添加一些代码以从 XML 文件中读取设置并创建一个 SQLConnection 并尝试连接到数据库抓住。如果有错误发送邮件,并在最后关闭 SQL 连接。

    但要使此功能正常工作,您必须确保您的连接将属性“DelayValidation”设置为 TRUE。如果不是,包将无法在脚本任务执行之前获取连接。

    【讨论】:

      猜你喜欢
      • 2021-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-01
      相关资源
      最近更新 更多