【问题标题】:"Failed to lock variable" SSIS error“无法锁定变量”SSIS 错误
【发布时间】:2010-06-24 06:49:44
【问题描述】:

对于每小时运行的计划 SSIS 包,我随机收到错误消息。最有趣的是,如果我删除检查点文件并再次运行包,它可以正常工作,但错误可能会在以后的运行中出现。我不知道为什么会这样。这是完整的错误消息。

以用户身份执行:UserNameChanged。 Microsoft (R) SQL Server 执行 包实用程序版本 10.0.2531.0 对于 64 位版权 (C) Microsoft 公司 1984-2005 年。保留所有权利。
开始时间:09:21:40 错误:2010-06-24 09:21:45.83 代码:0xC0014054
来源:保存 MaxLSN 并提取日期
说明:锁定变量失败 “用户::UpdateProcessControlQuery”为 读取访问错误 0xC0010001 "The 找不到变量。出现这种情况 当试图检索一个 变量集合中的变量 在执行期间在容器上 包,变量不是 那里。变量名可能有 改变或变量没有 已创建。”。结束错误错误: 2010-06-24 09:21:45.84 代码: 0xC0024107 来源:保存 MaxLSN & 提取日期说明:有 是任务验证期间的错误。 结束错误 DTExec: 包 执行返回 DTSER_FAILURE (1)。 开始时间:09:21:40 结束时间:09:21:45 经过:4.875 秒。包裹 执行失败。步骤失败。

此外,我有 100 多个这样的包以一组 20 个包为一组运行,一个小时内运行 5 个组。而且这个“变量锁定”错误在每个周期中至少弹出一次。所以我需要找出根本原因。谁能帮忙...

【问题讨论】:

    标签: sql-server ssis


    【解决方案1】:

    我怀疑这与在并行执行的多个组件中写入相同的变量有关。本质上,这将是该变量的竞争条件。

    例如,如果组件 A 和组件 B 可以并行执行并且都写入给定变量,那么当组件 B 尝试执行时,组件 A 可能会写入它(使其不可用)。由于两个作业的开始时间在运行之间会有所不同,您可能会遇到包似乎随机失败的情况。

    要解决此问题,您需要添加一个额外的变量以便它们不被共享,或者强制一个组件在另一个组件开始之前完成(通过依赖项)。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      我遇到了同样的问题。修复对我有用的问题:

      根本原因:我创建了变量并在“数据流”中使用它来保存“行数”的值。在此之后,我试图在“控制流”>“脚本任务”中使用这个变量。它不起作用,并给了我与发布的相同的错误。

      修复:我创建了变量并在“脚本任务”中使用。在脚本任务中使用后,我在 Data Flow > Row Count 中分配了 Row Count 的值。

      这对我来说看起来很奇怪,但它确实有效:)

      【讨论】:

      • 你能告诉我你解决问题的步骤吗?
      【解决方案3】:

      似乎包中的序列容器缺少一个变量,它可能需要从其他作业或父包中获取。我认为这是变量范围或在运行时生成变量值的问题。

      谢谢 说实话

      【讨论】:

      • 不。如果是这种情况,为什么在删除检查点文件后包运行?
      【解决方案4】:

      检查并确保任务编辑器中的连接管理器属性。如果您从其他包复制任务/连接管理器,那么我们必须确保所有属性都已正确重新定义。

      【讨论】:

        【解决方案5】:

        此错误的另一种变体: 我将任务从一个包复制到另一个包。该任务包含参数映射,但源变量在新包中不可用。这使得参数映射无效。

        【讨论】:

          【解决方案6】:

          如果运行版本和构建版本不同,您也可能会收到此错误。例如,我在 2012 年的服务器上构建了该软件包,并在 2016 年运行它并收到此错误。

          【讨论】:

            【解决方案7】:

            我也面临同样的问题,但现在解决了这个问题。 我在我的包中使用了 2 个 foreachloop 和 2 个文件系统任务,在第一个循环中,我将完全限定的 excel 的值分配给我在第二个循环中使用的变量和相同的变量,这就是这个问题出现的原因。 我为第二个循环创建了另一个变量,并将该变量值分配给第二个文件系统任务。 最初我在两个文件系统任务中只使用一个变量作为源,现在创建了 2 个变量并且问题得到了解决。 请参阅快照以查看快照中的详细信息。

            【讨论】:

            • 如果你们都面临同样的问题,请参考这个。
            【解决方案8】:

            调试时出现同样的错误。最小化视觉工作室,我看到弹出窗口,后面有错误消息。单击确定按钮在我的视觉工作室中呈现正确的错误。这是关于缺少列映射。修复后工作。

            【讨论】:

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