CORREGIR: Una tarea de script o un componente de script se ejecuta varias veces por duplicado al ejecutar paquetes que contienen tareas de script o componentes de script en paralelo en SSIS

Se aplica a: Microsoft SQL Server 2005 Standard EditionMicrosoft SQL Server 2005 Developer EditionMicrosoft SQL Server 2005 Enterprise Edition

N.o de error: 447320 (SQLBUDT)Bug N.o: 411552 (SQLBUDT)

Síntomas


Imagine la siguiente situación:
  • Tiene un paquete de Microsoft SQL Server 2005 Integration Services (SSIS) que contiene una tarea de script en el flujo de control o un componente de script en el flujo de datos.
  • Copie y pegue el paquete SSIS (el archivo .dtsx) para crear varias copias del mismo paquete.
  • Crear algunas tareas Ejecutar paquete en un paquete SSIS primario y, a continuación, especificar los paquetes copiados en el Ejecutar paquete tareas.
  • Las tareas Ejecutar paquete se ejecutan en paralelo dentro del paquete primario.
  • La propiedad ExecuteOutOfProcess de las tareas Execute Package se establece en FALSE.
  • Ejecute el paquete SSIS primario.
En este escenario, puede observar que una tarea de script o un componente de script se ejecuta varias veces por duplicado. Incluso se puede ejecutar desde la tarea Ejecutar paquete incorrecta.

Causa


Este problema se produce debido a los nombres de proyecto duplicados de las tareas de script o los componentes de script en Microsoft Visual Studio para aplicaciones. Después de copiar y pegar el archivo .dtsx, las tareas de script o los componentes de script de estos dos paquetes tienen el mismo GUID para la propiedad ID. Al ejecutar el paquete SSIS primario, SSIS puede ejecutar incorrectamente una de las tareas de script o los componentes de script varias veces por duplicado. Sin embargo, espera que SSIS ejecute cada tarea de script o componente de script de forma independiente. Nota Visual Studio para aplicaciones se usa para diseñar y compilar las tareas de script o los componentes de script en SSIS.

Resolución


Información del Service Pack

Para resolver este problema, obtenga el Service Pack más reciente para SQL Server 2005. Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
913089 Cómo obtener el Service Pack más reciente para SQL Server 2005

Solución alternativa


Para evitar este problema, siga estos pasos:
  1. Abra el paquete SSIS copiado en SQL Server Business Intelligence Development Studio.
  2. Presione CTRL+X para eliminar la tarea de script problemática o el componente de script problemático.
  3. En el mismo paquete que contiene la tarea de script problemática o el componente de script problemático, presione CTRL+V para pegar la tarea de script o el componente de script.
Después de seguir estos pasos, se generará automáticamente un nuevo GUID para la propiedad ID. Si la propiedad PreCompile del paquete que contiene la tarea de script problemática o el componente de script problemático se establece en True, las tareas de script o los componentes de script se precompilan. En este caso, debe volver a compilar las tareas de script o los componentes de script. Para ello, abra el diseñador de scripts y, a continuación, cierre el diseñador de scripts. Es posible que tenga que redefinir las restricciones precedentes para la tarea de script pegada o el componente de script pegado. De forma similar, para crear manualmente un nombre de proyecto único para las tareas de script, haga clic en Script de diseño en el cuadro de diálogo Editor de transformación Script y, a continuación, edite manualmente la propiedad Nombre del proyecto en Visual Studio para aplicaciones. Nota No se puede crear un nombre de proyecto único para los componentes de script en el flujo de datos.

Estado


Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "Se aplica a".

Más información


Pasos para reproducir el problema

  1. Edite los scripts del paquete SSIS copiado para personalizar una operación para el paquete. Puede personalizar un cuadro de mensaje o un evento registrado para reproducir el problema.
  2. Guarde los cambios en el paquete copiado.
  3. Cree un paquete SSIS que use una tarea de script en el flujo de control o que utilice un componente de script en el flujo de datos.
  4. Guarde el paquete.
  5. Copie y pegue el paquete en el Explorador de soluciones o en el sistema de archivos.
  6. Cree un nuevo paquete SSIS primario que use dos tareas Ejecutar paquete para ejecutar el paquete SSIS original y el paquete SSIS copiado en paralelo.
  7. Ejecute el paquete primario.
Se ejecuta la tarea de script del paquete SSIS original o se ejecuta la tarea de script del paquete copiado. Sin embargo, espera que se ejecuten ambos paquetes SSIS del paquete primario.