sql server - Release Lock en las variables utilizadas en Execute Process Task | SSIS



sql-server etl (1)

Tengo un paquete con una tarea Foreach Container y Execute Process dentro de ForEach Container . En algún error en la tarea Ejecutar proceso redirige al controlador de evento OnError de ForEach Container .

Estoy capturando el error de .exe utilizando la propiedad StandardErrorvariable de la tarea y usando esto en la tarea de script que está presente en OnError Event Handler.

La tarea de secuencia de comandos falla diciendo

Error: se detectó un interbloqueo al intentar bloquear la variable "Usuario :: Nombre de ErrorExcel, Usuario :: Carpeta de Error, Usuario :: ErrorMessage, Usuario :: Nombre de Archivo" para el acceso de lectura. No se pudo adquirir un bloqueo después de 16 intentos y se agotó el tiempo de espera.

Cómo arreglar esto ?


Puede resolver fácilmente el problema administrando la variable que bloquea explícitamente en el código. (No agrega variables a las propiedades ReadOnlyVariables y ReadWriteVariables .

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

Referencias