Actualizar objetos personalizados para SQL Server 2008 Integration Services

En SQL Server 2008, hay algunas características nuevas de Integration Services que provocan cambios importantes que afectan a los objetos personalizados integrados en SQL Server 2005Integration Services. Si desea utilizar estos objetos personalizados en los paquetes de SQL Server 2008Integration Services, tendrá que actualizar los objetos.

En este tema se explica cómo determinar qué opción de actualización es la más adecuada para sus objetos personalizados y cómo actualizar e implementar esos objetos de SQL Server 2005Integration Services en SQL Server 2008Integration Services. También se explica cómo asegurarse de que los objetos personalizados actualizados se puedan encontrar durante la actualización automática de los paquetes.

Determinar cómo actualizar los objetos personalizados

Tiene la opción de actualizar simplemente los objetos personalizados o de actualizar y crear nuevas versiones de los objetos:

  • Actualizar solo.   En esta opción, modifica los objetos personalizados para que sean compatibles con SQL Server 2008Integration Services.

  • Actualizar y crear nuevas versiones.   En esta opción, actualiza primero los objetos. A continuación, asigna una nueva versión de ensamblado a los objetos actualizados y crea un archivo de asignación que identifica las ubicaciones de estos objetos nuevos.

Sea cual sea la opción de actualización que seleccione, debe actualizar los objetos personalizados antes de que usted o los usuarios de los objetos intenten actualizar los paquetes que contienen esos objetos. Cuando el motor de actualización de paquetes intenta actualizar los paquetes, el motor intenta crear las instancias de los objetos personalizados de esos paquetes. Si el equipo no ha actualizado las versiones de esos objetos personalizados, el motor de actualización de paquetes no podrá crear las instancias de los objetos. Dado que no se pueden crear las instancias de los objetos, el motor de actualización de paquetes no podrá actualizar los paquetes.

[!NOTA]

La versión SQL Server 2008 de BI Development Studio inicia automáticamente el motor de actualización de paquetes al abrir un paquete de SQL Server 2005 individual. El Asistente para actualización de paquetes utiliza también el mismo motor de actualización de paquetes al actualizar un lote de paquetes.

Para ayudarle a determinar si solo actualizar o actualizar y crear una nueva versión, en la tabla siguiente se identifican los distintos factores a tener en cuenta.

Opción

Efecto en la actualización del paquete

Efecto en la coexistencia

Solo actualizar los objetos personalizados

No tiene que efectuar pasos adicionales. El motor de actualización de paquetes puede actualizar correctamente los paquetes que contienen los objetos personalizados.

Puede utilizar solo las versiones en SQL Server 2008 o sólo las versiones en SQL Server 2005 de los objetos personalizados en un equipo determinado. No puede utilizar las versiones en SQL Server 2005 de los objetos personalizados en el mismo equipo que las versiones en SQL Server 2008.

Actualizar y crear nuevas versiones de los objetos personalizados

Tiene que crear un archivo de asignación para distribuirlo con los objetos actualizados. De lo contrario, el motor de actualización de paquetes no podrá actualizar correctamente los paquetes que contienen los objetos personalizados.

Puede utilizar las versiones en SQL Server 2005 de los objetos personalizados en paquetes de SQL Server 2005 y utilizar las versiones en SQL Server 2008 de los objetos personalizados en paquetes de SQL Server 2008, en el mismo equipo.

Actualizar los objetos personalizados

El procedimiento siguiente describe cómo actualizar los objetos personalizados para que sean compatibles con SQL Server 2008Integration Services.

Para actualizar un objeto personalizado

  1. Quite las referencias a los ensamblados de Integration Services con la versión 9.0 y reemplácelos con las referencias a la versión 10.0 de los mismos ensamblados.

  2. Cambie el nombre de los objetos IDTSxxx90 en el código por el de los objetos IDTSxxx100 equivalentes.

  3. Busque las advertencias sobre los miembros del código obsoletos o en desuso y reemplácelos por los nuevos miembros equivalentes.

Una vez actualizados los objetos personalizados, tiene la opción de determinar si desea crear una nueva versión también de estos objetos. No tiene que crear una nueva versión de los objetos personalizados actualizados. Si determina no crear una nueva versión de los objetos personalizados, tendrá que implementar los objetos personalizados actualizados como se describe más adelante en este tema.

Sin embargo, si desea utilizar versiones distintas de los objetos personalizados que coexistan en los paquetes de SQL Server 2005Integration Services y SQL Server 2008Integration Services, tendrá que crear una nueva versión de los objetos actualizados como se describe en la sección siguiente.

Crear nuevas versiones de los objetos personalizados

El modo en que crea una nueva versión de los objetos personalizados depende de si escribió esos objetos en código administrado o nativo:

  • Código administrado. Para los objetos personalizados escritos en código administrado, la creación de nuevas versiones significa un incremento del número de versión del ensamblado.

  • Código nativo. Para los objetos personalizados escritos en código nativo, la creación de nuevas versiones significa el cambio de ProgID y CLSID.

Después de crear una nueva versión de los objetos personalizados, tiene que proporcionar los archivos de asignación de actualización para esos objetos. Durante la actualización del paquete, estos archivos de asignación indican al motor de actualización de paquetes cómo reemplazar las versiones anteriores de los objetos personalizados por las nuevas versiones.

Asignar las versiones del objeto personalizado para la actualización

SQL Server 2008Integration Services agrega una nueva subcarpeta, UpgradeMappings, en la carpeta %ProgramFiles%\Microsoft SQL Server\100\DTS. Esta subcarpeta es donde implementa los archivos de asignación que indican al motor de actualización de paquetes cómo asignar los objetos de SQL Server 2005Integration Services a sus nuevos equivalentes en SQL Server 2008.

Después de haber implementado los archivos de asignación en la subcarpeta UpgradeMappings, Integration Services podrá actualizar los paquetes que contienen los objetos personalizados. Los archivos de asignación solo son necesarios durante la actualización de paquetes. Una vez actualizados todos los paquetes, puede quitar los archivos de asignación. Para obtener más información, vea Actualizar paquetes de Integration Services.

Todos los archivos de asignación deben estar en formato XML, como se muestra en el archivo de asignación de ejemplo siguiente.

[!NOTA]

Los archivos de asignación deben tener la extensión de archivo ".xml" o el motor de actualización de paquetes no detectará estos archivos.

Archivo de asignación de ejemplo

<?xml version="1.0" encoding="utf-8"?>
<Mappings xmlns="https://www.microsoft.com/SqlServer/Dts/UpgradeMapping.xsd">
  <!-- Connection Managers -->
  <ConnectionManagerMapping tag="MSOLAP - Analysis Services connections" 
                            oldValue="MSOLAP90"
                            newValue="MSOLAP100" />
  
  <!-- Extensions -->
  <ExtensionMapping tag="my custom object"
      oldAssemblyStrongName="MyCustomAssembly.MyCustomTask, MyCustomAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"
      newAssemblyStrongName="MyCustomAssembly.MyCustomTask, MyCustomAssembly, Version=2.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />

  <!-- Providers -->
  <ProviderMapping tag="SQL Server Native Client - Version dependent" 
                   oldValue="sqlncli.1"
                   newValue="sqlncli10.1" />
  <ProviderMapping tag="SQL Server Native Client - Version independent"
                   oldValue="sqlncli"
                   newValue="sqlncli10" />
  <ProviderMapping tag="MSOLAP - Analysis Services connections"
                   oldValue="msolap.3"
                   newValue="msolap.4" />
</Mappings>

Crear su propio elemento <ExtensionMapping>

Como se muestra en el archivo de asignación del ejemplo anterior, el elemento <ExtensionMapping> es el que asigna los objetos SQL Server 2005Integration Services a sus nuevos equivalentes para SQL Server 2008Integration Services. Después de crear un nuevo elemento <ExtensionMapping>, tiene que proporcionar los valores para los atributos en la tabla siguiente.

Atributo

Descripción

tag

Texto que describe el objeto personalizado. (Esta descripción se utiliza para el registro).

oldAssemblyStrongName

El nombre seguro del ensamblado del objeto personalizado en SQL Server 2005Integration Services.

newAssemblyStrongName

El nombre seguro del ensamblado del objeto personalizado en SQL Server 2008Integration Services.

Tiene las opciones siguientes al asignar los ensamblados:

  • Puede utilizar el nombre de clase completo: <nombre del ensamblado>.<nombre del clase>, <nombre del ensamblado>, Version=<versión>, Culture=<referencia cultural>, PublicKeyToken=<clave>. Este formato se muestra en el archivo de asignación del ejemplo anterior en este tema.

  • Puede proporcionar el nombre seguro del propio ensamblado, sin el nombre de clase, como se muestra en el ejemplo siguiente:

    <ExtensionMapping tag="my custom object"
        oldAssemblyStrongName="MyCustomAssembly, 
    Version=1.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"
        newAssemblyStrongName="MyCustomAssembly,
    Version=2.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
    

    Si proporciona el nombre seguro del propio ensamblado, todas las clases del ensamblado anterior se asignarán al nuevo ensamblado.

Implementar los objetos personalizados actualizados

Los pasos para implementar el objeto personalizado actualizado son similares a los correspondientes en SQL Server 2005. La única diferencia es que ahora copia el ensamblado personalizado en una subcarpeta bajo la carpeta %ProgramFiles%\Microsoft SQL Server\100\DTS, en lugar de copiarlo en la carpeta %ProgramFiles%\Microsoft Server SQL\90\DTS.

Si crea una nueva versión de los objetos personalizados, recuerde implementar los archivos de asignación en la carpeta UpgradeMappings para admitir la actualización automática de los paquetes que utilizan estos objetos de nueva versión.

Icono de Integration Services (pequeño) Manténgase al día con Integration Services

Para obtener las más recientes descargas, artículos, ejemplos y vídeos de Microsoft, así como soluciones seleccionadas de la comunidad, visite la página de Integration Services en MSDN o TechNet:

Para recibir notificaciones automáticas de estas actualizaciones, suscríbase a las fuentes RSS disponibles en la página.