Hemos notado recientemente un problema que los paquetes SSIS redistribuidos en algún momento no parecen incluir los últimos cambios ... Cuando busco el dtsx usando el bloc de notas, veo el script modificado en el código para que los cambios definitivamente estén allí.Volver a implementar paquetes de SSIS - ¿Caché?
Mi suposición era que los componentes de scripts de los paquetes de SSIS finalmente se compilan en un ensamblado en algún lugar del proceso; esto es bastante probable ya que me imagino que el código de C# no se puede ejecutar sin algo que lo compile primero. Entonces, en teoría, si estas asambleas terminarían en caché y no se sobrescribirían inmediatamente (por alguna razón) eso explicaría este problema.
La única "evidencia" que me hace pensar que mi teoría es correcta es si continúo ejecutando el paquete en algún momento, de repente cambia al nuevo código.
Sin embargo, hasta ahora no he encontrado por qué y cómo está sucediendo esto, si es ... ¿Alguien puede ayudar?
ACTUALIZACIÓN: MSDN dice: "A diferencia de las versiones anteriores donde se puede indicar si las secuencias de comandos se precompilan, todos los scripts están precompilados en SQL Server 2008 Integration Services (SSIS) y versiones posteriores." - Si por precompilados significan que en lugar del paquete real se ejecuta una versión precompilada (creo que esto porque el paquete en sí no parece compilarse ya que el código es visible en el Bloc de notas) debe haber una forma de forzar al motor a sobrescribir el conjunto precompilado ... pero ¿cómo?
ACTUALIZACIÓN: Uno de los cuatro componentes básicos de SSIS es el servicio Services de SQL ServerIntegration, que es un servicio de Windows. Aparentemente, este servicio almacenará en caché metadatos de componentes/tareas para que el motor de tiempo de ejecución de SSIS pueda sondear el caché para ver qué está instalado, lo que puede ayudar a acelerar los tiempos de carga del paquete. Sin embargo, si los paquetes están almacenados en el sistema de archivos (no en SQL Integration Services) y ejecutados por Agent Jobs, el trabajo del agente utilizará la versión de 64 bits de DTEXEC para ejecutar los paquetes. Todavía no he encontrado evidencia de que el almacenamiento en caché esté involucrado allí, pero ciertamente hay opciones para verificar una serie de parámetros en la fase de validación de la ejecución, como los números de versión, puede ser por una razón.
Solo para decir que tenemos el mismo problema exacto aquí hoy. Reiniciar el agente ni SQLSISS ayuda. –
¿Qué hizo el truco fue agregar y eliminar una columna de una tabla involucrada. Claramente, este no es el camino a seguir y ciertamente estamos interesados en la respuesta a esta pregunta. –
También: creo que el caché está almacenado en algún lugar del disco porque sobrevivió a un reinicio del servidor –