Compartilhar via


Atualizando objetos personalizados do SQL Server 2008 Integration Services

No SQL Server 2008, há alguns recursos novos do Integration Services que resultam em alterações de quebra que afetam objetos personalizados criados no SQL Server 2005 Integration Services. Para usar esses objetos personalizados em pacotes do SQL Server 2008 Integration Services, atualize os objetos.

Esse tópico explica como escolher a melhor opção de atualização para seus objetos personalizados e como atualizar e implantar esses objetos do SQL Server 2005 Integration Services no SQL Server 2008 Integration Services. Ele também explica como garantir a localização de seus objetos personalizados atualizados durante a atualização automatizada de pacotes.

Decidindo como atualizar seus objetos personalizados

Você tem a opção de simplesmente atualizar seus objetos personalizados ou de atualizar e reverter seus objetos:

  • Apenas atualização.   Nessa opção, você muda os objetos personalizados para torná-los compatíveis com o SQL Server 2008 Integration Services.

  • Atualização e reversão.   Nessa opção, você primeiro atualiza os objetos. Portanto, você atribui uma versão de assembly nova aos objetos atualizados e cria um arquivo de mapeamento que identifica as localizações desses objetos novos.

Independente da opção de atualização selecionada, atualize seus objetos personalizados antes da tentativa de atualização de pacotes contendo esses objetos por você ou pelos usuários dos seus objetos. Quando o mecanismo de atualização de pacote tenta atualizar pacotes, o mecanismo tenta criar uma instância dos objetos personalizados nesses pacotes. Se o computador não tiver atualizado versões desses objetos personalizados, o mecanismo de atualização de pacote não poderá criar uma instância dos objetos. Como não pode ser criada uma instância dos objetos, o mecanismo de atualização de pacote não poderá atualizar os pacotes.

ObservaçãoObservação

A versão SQL Server 2008 do BI Development Studio inicia automaticamente o mecanismo de atualização de pacote quando você abre um pacote individual do SQL Server 2005. O Assistente de Atualização de Pacote também usa o mesmo mecanismo de atualização de pacote quando você atualiza um lote de pacotes.

Para ajudá-lo a decidir se você deve apenas atualizar ou se deve atualizar e reverter, a tabela a seguir identifica os diversos fatores a serem considerados.

Opção

Efeito sobre a atualização de pacote

Efeito sobre a existência lado a lado

Só atualize objetos personalizados

Você não precisa de etapas adicionais. O mecanismo de atualização de pacote pode atualizar com êxito pacotes contendo seus objetos personalizados.

Você só pode usar as versões SQL Server 2008 ou as versões SQL Server 2005 de seus objetos personalizados em determinado computador. Você não pode usar as versões SQL Server 2005 de seus objetos personalizados no mesmo computador que as versões SQL Server 2008.

Atualização e reversão de objetos personalizados

Você precisa criar um arquivo de mapeamento a ser distribuído com seus objetos atualizados. Caso contrário, o mecanismo de atualização de pacote não pode atualizar com êxito pacotes contendo seus objetos personalizados.

Você pode usar as versões SQL Server 2005 dos seus objetos personalizados nos pacotes SQL Server 2005 e usar as versões SQL Server 2008 dos seus objetos personalizados nos pacotes SQL Server 2008, no mesmo computador.

Atualizando seus objetos personalizados

O procedimento a seguir resume como atualizar seus objetos personalizados de forma que eles sejam compatíveis com SQL Server 2008 Integration Services.

Para atualizar um objeto personalizado

  1. Remova referências aos assemblies Integration Services com a versão 9.0 e substitua-as por referências à versão 10.0 dos mesmos assemblies.

  2. Renomeie objetos IDTSxxx90 em código para os objetos IDTSxxx100 equivalentes.

  3. Busque avisos sobre membros de código obsoletos ou substituídos e substitua-os pelos novos membros equivalentes.

Depois de atualizar seus objetos personalizados, você tem a opção de reverter ou não esses objetos. Não é necessário reverter seus objetos personalizados atualizados. Se decidir não reverter seus objetos personalizados, você precisará implantar seus objetos personalizados atualizados conforme descrito posteriormente nesse tópico.

Entretanto, para usar versões diferentes dos seus objetos personalizados lado a lado nos pacotes SQL Server 2005 Integration Services e SQL Server 2008 Integration Services, você precisará reverter os objetos atualizados conforme descrito na próxima seção.

Revertendo seus objetos personalizados

A forma de reversão de seus objetos personalizados depende do tipo de código usado para escrever esses objetos - gerenciado ou nativo:

  • Código gerenciado. Para objetos personalizados escritos em código gerenciado, reverter significa incrementar o número de versão do assembly.

  • Código nativo. Para objetos personalizados escritos em código nativo, reverter significa alterar o PROGID e o CLSID.

Depois de reverter seus objetos personalizados, você precisa fornecer arquivos de mapeamento de atualização para esses objetos. Durante a atualização do pacote, esses arquivos de mapeamento indicam ao mecanismo de atualização do pacote como substituir as versões anteriores dos seus objetos personalizados pelas novas versões.

Mapeando as versões de seu objeto personalizado para atualização

O SQL Server 2008 Integration Services adiciona uma nova subpasta, UpgradeMappings, na pasta %ProgramFiles%\Microsoft SQL Server\100\DTS. Essa subpasta é onde você implanta os arquivos de mapeamento que indicam ao mecanismo de atualização de pacote como mapear objetos SQL Server 2005 Integration Services para seus novos equivalentes do SQL Server 2008.

Depois que você implantar seus arquivos de mapeamento para a subpasta UpgradeMappings, o Integration Services poderá atualizar pacotes contendo seus objetos personalizados. Os arquivos de mapeamento só são necessários durante a atualização de pacote. Depois da atualização de todos os pacotes, você poderá remover os arquivos de mapeamento. Para obter mais informações, consulte Atualizando pacotes do Integration Services.

Todos os arquivos de mapeamento precisam estar em formato XML, conforme mostrado no exemplo de arquivo de mapeamento a seguir.

ObservaçãoObservação

Seus arquivos de mapeamento precisam ter a extensão ".xml"; caso contrário, eles não serão descobertos pelo mecanismo de atualização de pacote.

Exemplo de arquivo de mapeamento

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

Criando seu próprio elemento <ExtensionMapping>

Conforme mostrado no exemplo de arquivo de mapeamento anterior, o <ExtensionMapping> é o elemento que mapeia os objetos SQL Server 2005 Integration Services para seus novos equivalentes do SQL Server 2008 Integration Services. Depois que você criar um novo elemento <ExtensionMapping>, forneça valores para os atributos na tabela a seguir.

Atributo

Descrição

marca

Texto que descreve seu objeto personalizado. (Esta descrição é usada para registro em log.)

oldAssemblyStrongName

O nome forte do assembly de seu objeto personalizado em SQL Server 2005 Integration Services.

newAssemblyStrongName

O nome forte do assembly de seu objeto personalizado no SQL Server 2008 Integration Services.

Você tem as seguintes opções ao mapear assemblies:

  • Você pode usar o nome de classe totalmente qualificado: <assembly name>.<class name>, <assembly name>, Version=<version>, Culture=<culture>, PublicKeyToken=<key>. Esse formato foi mostrado anteriormente nesse tópico, no exemplo de arquivo de mapeamento.

  • Você pode fornecer o nome forte do próprio assembly, sem o nome da classe, conforme mostrado no seguinte exemplo:

    <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" />
    

    Se você fornecer o nome forte do próprio assembly, todas as classes do assembly anterior serão mapeadas para o novo assembly.

Implantando seus objetos personalizados atualizados

As etapas para implantar seu objeto personalizado atualizado são semelhantes às do SQL Server 2005. A única diferença é que agora você copia seu assembly personalizado em uma subpasta da pasta %ProgramFiles%\Microsoft SQL Server\100\DTS, em vez da pasta %ProgramFiles%\Microsoft SQL Server\90\DTS.

Se for reverter seus objetos personalizados, lembre-se de implantar seus arquivos de mapeamento para a pasta UpgradeMappings para dar suporte à atualização automatizada de pacotes que usam esses objetos revertidos.

Ícone do Integration Services (pequeno) Fique atualizado com o Integration Services

Para obter os mais recentes downloads, artigos, exemplos e vídeos da Microsoft, bem como soluções selecionadas da comunidade, visite a página do Integration Services no MSDN ou TechNet:

Para receber uma notificação automática das atualizações, assine os feeds RSS disponíveis na página.