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