Mise à niveau d'objets personnalisés pour SQL Server 2008 Integration Services

Dans SQL Server 2008, il existe quelques nouvelles fonctionnalités Integration Services qui engendrent d'importantes modifications qui affectent les objets personnalisés créés dans SQL Server 2005Integration Services. Si vous souhaitez utiliser ces objets personnalisés dans des packages SQL Server 2008Integration Services, vous devrez les mettre à niveau.

Cette rubrique explique comment déterminer la meilleure option de mise à niveau pour vos objets personnalisés et comment mettre à niveau et déployer ces objets de SQL Server 2005Integration Services vers SQL Server 2008Integration Services. Elle explique également comment veiller à ce que vos objets personnalisés mis à jour soient localisables pendant la mise à niveau automatisée des packages.

Détermination du mode de mise à niveau de vos objets personnalisés

Vous avez la possibilité de simplement mettre à niveau vos objets personnalisés ou de les mettre à niveau et de leur attribuer une nouvelle version :

  • Mise à niveau uniquement.   Dans cette option, vous modifiez les objets personnalisés afin qu'ils soient compatibles avec SQL Server 2008Integration Services.

  • Mise à niveau et nouvelle version.   Dans cette option, vous mettez d'abord à niveau les objets. Ensuite, vous attribuez une nouvelle version d'assembly aux objets mis à niveau et vous créez un fichier de mappage qui identifie les emplacements de ces nouveaux objets.

Quelle que soit l'option de mise à niveau que vous sélectionnez, vous devez mettre à niveau vos objets personnalisés avant toute tentative de mise à niveau des packages qui contiennent ces objets. Lorsque le moteur de mise à niveau des packages essaie de mettre à niveau les packages, il essaie d'instancier les objets personnalisés dans ces packages. Si l'ordinateur n'a pas mis à niveau les versions de ces objets personnalisés, le moteur de mise à niveau des packages ne sera pas en mesure d'instancier les objets. Puisque les objets ne peuvent pas être instanciés, le moteur de mise à niveau des packages ne sera pas en mesure de mettre à niveau ces packages.

[!REMARQUE]

La version SQL Server 2008 de BI Development Studio démarre automatiquement le moteur de mise à niveau des packages lorsque vous ouvrez un package SQL Server 2005 individuel. L'Assistant Mise à niveau de packages utilise également le même moteur de mise à niveau des packages lorsque vous mettez à niveau un lot de packages.

Pour vous aider à déterminer si vous devez mettre à niveau uniquement ou mettre à niveau et attribuer une nouvelle version, le tableau suivant identifie les divers facteurs à prendre en compte.

Option

Effet sur la mise à niveau des packages

Effet sur la co-existence

Mise à niveau des objets personnalisés uniquement

Vous n'avez pas à prendre de mesures supplémentaires. Le moteur de mise à niveau des packages est en mesure de mettre correctement à niveau les packages qui contiennent vos objets personnalisés.

Vous pouvez utiliser uniquement les versions SQL Server 2008 ou les versions SQL Server 2005 de vos objets personnalisés sur un ordinateur particulier. Vous ne pouvez pas utiliser les versions SQL Server 2005 de vos objets personnalisés sur le même ordinateur que les versions SQL Server 2008.

Mise à niveau et nouvelle version des objets personnalisés

Vous devez créer un fichier de mappage à distribuer avec vos objets mis à niveau. Sinon, le moteur de mise à niveau des packages n'est pas en mesure de mettre correctement à niveau les packages qui contiennent vos objets personnalisés.

Vous pouvez utiliser les versions SQL Server 2005 de vos objets personnalisés dans les packages SQL Server 2005 et utiliser les versions SQL Server 2008 de vos objets personnalisés dans les packages SQL Server 2008, sur le même ordinateur.

Mise à niveau de vos objets personnalisés

La procédure suivante souligne la manière de mettre à niveau vos objets personnalisés afin qu'ils soient compatibles avec SQL Server 2008Integration Services.

Pour mettre à jour un objet personnalisé

  1. Supprimez les références aux assemblys Integration Services avec la version 9.0 et remplacez-les par les références à la version 10.0 des mêmes assemblys.

  2. Renommez les objets IDTSxxx90 dans le code par les objets IDTSxxx100 équivalents.

  3. Recherchez les avertissements à propos des membres de code obsolètes ou abandonnés et remplacez-les par les nouveaux membres équivalents.

Après avoir mis à niveau vos objets personnalisés, vous avez la possibilité d'attribuer une nouvelle version à ces objets. Il n'est pas nécessaire d'attribuer une nouvelle version à vos objets personnalisés mis à niveau. Si vous décidez de ne pas attribuer une nouvelle version à vos objets personnalisés, vous aurez alors besoin de déployer vos objets personnalisés mis à niveau comme décrit ultérieurement dans cette rubrique.

Toutefois, si vous souhaitez utiliser des versions différentes de vos objets personnalisés côte à côte dans SQL Server 2005Integration Services et les packages SQL Server 2008Integration Services, vous devrez attribuer une nouvelle version aux objets mis à niveau comme décrit dans la section suivante.

Nouvelle version de vos objets personnalisés

La manière d'attribuer une nouvelle version à vos objets personnalisés varie selon qu'ils sont écrits en code managé ou en code natif :

  • Code managé. Pour les objets personnalisés écrits en code managé, attribuer une nouvelle version consiste à incrémenter le numéro de version des assemblys.

  • Code natif. Pour les objets personnalisés écrits en code natif, attribuer une nouvelle version consiste à modifier ProgID et CLSID.

Après avoir attribué la nouvelle version à vos objets personnalisés, vous devez fournir des fichiers de mappage de mise à niveau pour ces objets. Pendant la mise à niveau des packages, ces fichiers de mappage indiquent au moteur de mise à niveau des packages comment remplacer les versions antérieures de vos objets personnalisés par les nouvelles versions.

Mappage des versions de votre objet personnalisé pour la mise à niveau

SQL Server 2008Integration Services ajoute un nouveau sous-dossier, UpgradeMappings, dans le dossier %ProgramFiles%\Microsoft SQL Server\100\DTS. Ce sous-dossier se trouve à l'emplacement auquel vous déployez les fichiers de mappage qui indiquent au moteur de mise à niveau des packages comment mapper les objets SQL Server 2005Integration Services à leurs nouveaux équivalents SQL Server 2008.

Après avoir déployé vos fichiers de mappage dans le sous-dossier UpgradeMappings, Integration Services sera en mesure de mettre à niveau les packages qui contiennent vos objets personnalisés. Les fichiers de mappage sont uniquement nécessaires pendant la mise à niveau des packages. Après avoir mis à niveau tous les packages, vous pouvez supprimer les fichiers de mappage. Pour plus d'informations, consultez Mise à niveau de packages Integration Services.

Tous les fichiers de mappage doivent être au format XML, comme indiqué dans l'exemple de fichier de mappage suivant.

[!REMARQUE]

Vos fichiers de mappage doivent porter l'extension « .xml », sans quoi ils ne seront pas découverts par le moteur de mise à niveau des packages.

Exemple de fichier de mappage

<?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>

Création de votre propre élément <ExtensionMapping>

Comme indiqué dans l'exemple de fichier de mappage précédent, l'élément <ExtensionMapping> correspond à l'élément qui mappe les objets SQL Server 2005Integration Services à leurs nouveaux équivalents pour SQL Server 2008Integration Services. Après avoir créé un élément <ExtensionMapping>, vous devez fournir des valeurs pour les attributs dans le tableau suivant.

Attribut

Description

tag

Texte qui décrit votre objet personnalisé. (Cette description est utilisée pour la journalisation.)

oldAssemblyStrongName

Nom fort de l'assembly de votre objet personnalisé dans SQL Server 2005Integration Services.

newAssemblyStrongName

Nom fort de l'assembly de votre objet personnalisé dans SQL Server 2008Integration Services.

Vous avez les possibilités suivantes lors du mappage des assemblys :

  • Vous pouvez utiliser le nom de classe complet : <nom de l'assembly>.<nom de la classe>, <nom de l'assembly>, Version=<version>, Culture=<culture>, PublicKeyToken=<clé>. Ce format est indiqué dans le précédent exemple de fichier de mappage de cette rubrique.

  • Vous pouvez fournir le nom fort de l'assembly lui-même, sans le nom de la classe, comme indiqué dans l'exemple suivant :

    <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 vous fournissez le nom fort de l'assembly lui-même, toutes les classes de l'ancien assembly seront mappées au nouvel assembly.

Déploiement de vos objets personnalisés mis à niveau

Les étapes pour déployer votre objet personnalisé mis à jour sont semblables à celles utilisées pour SQL Server 2005. La seule différence est que vous copiez désormais votre assembly personnalisé dans un sous-dossier du dossier %ProgramFiles%\Microsoft SQL Server\100\DTS, au lieu du dossier %ProgramFiles%\Microsoft SQL Server\90\DTS.

Si vous attribuez une nouvelle version à vos objets personnalisés, n'oubliez pas de déployer leurs fichiers de mappage dans le dossier UpgradeMappings pour prendre en charge la mise à niveau automatisée des packages qui utilisent ces objets auxquels une nouvelle version est attribuée.

Icône Integration Services (petite) Rester à jour avec Integration Services

Pour obtenir les derniers téléchargements, articles, exemples et vidéos de Microsoft, ainsi que des solutions sélectionnées par la communauté, visitez la page Integration Services sur MSDN ou TechNet :

Pour recevoir une notification automatique de ces mises à jour, abonnez-vous aux flux RSS disponibles sur la page.