释放锁定执行过程任务|中使用的变量SSIS

时间:2017-06-09 08:50:00

标签: sql-server variables ssis etl executeprocesstask

我在 ForEach Container 中有一个包含 Foreach容器执行流程任务的包。在Execute Process Task中出现一些错误时,它会重定向到 OnError ForEach Container 的事件处理程序。

我正在使用任务的 StandardErrorvariable 属性从.exe捕获错误,并在 OnError 事件处理程序中的脚本任务中使用它。

脚本任务失败说

  

错误:尝试锁定变量时检测到死锁   " User :: ErrorExcelName,User :: ErrorFolder,User :: ErrorMessage,   用户::文件名"用于读取访问。 16岁以后无法获得锁定   尝试和超时。

如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您可以通过在代码中显式管理变量锁定来轻松解决问题。 (不向ReadOnlyVariablesReadWriteVariables属性添加变量。

string strFilename;
Variables lockedVariables = null;
Dts.VariableDispenser.LockOneForRead("FileName", ref lockedVariables);
strFilename = lockedVariables["FileName"].Value;
lockedVariables.Unlock();

<强>参考