Condividi tramite


Aggiornamento di oggetti personalizzati per SQL Server 2008 Integration Services

Alcune nuove caratteristiche di Integration Services disponibili in SQL Server 2008 introducono modifiche che influiscono sugli oggetti personalizzati compilati in SQL Server 2005 Integration Services. Se si desidera utilizzare questi oggetti personalizzati nei pacchetti di SQL Server 2008 Integration Services, sarà necessario aggiornarli.

In questo argomento viene descritto come identificare l'opzione di aggiornamento più appropriata per gli oggetti personalizzati e come aggiornare e distribuire tali oggetti da SQL Server 2005 Integration Services a SQL Server 2008 Integration Services. Viene anche descritto come assicurarsi che gli oggetti personalizzati aggiornati possano essere individuati durante l'aggiornamento automatizzato dei pacchetti.

Identificazione dell'opzione di aggiornamento degli oggetti personalizzati

È possibile scegliere se limitarsi ad aggiornare gli oggetti personalizzati o modificarne anche la versione:

  • Solo aggiornamento.   Se si utilizza questa opzione gli oggetti personalizzati vengono modificati in modo che siano compatibili con SQL Server 2008 Integration Services.

  • Aggiornamento e modifica della versione.   In questa opzione gli oggetti vengono innanzitutto aggiornati, quindi viene loro assegnata una nuova versione di assembly e viene creato un file di mapping che identifica le posizioni per questi nuovi oggetti.

Indipendentemente dall'opzione di aggiornamento selezionata, è necessario aggiornare gli oggetti personalizzati prima che si tenti di aggiornare i pacchetti che li contengono. Durante il tentativo di aggiornare i pacchetti, il motore di aggiornamento pacchetti tenta di creare un'istanza degli oggetti personalizzati in tali pacchetti. Se nel computer non sono disponibili le versioni aggiornate di tali oggetti personalizzati, il motore di aggiornamento pacchetti non sarà in grado di creare istanze degli oggetti. Poiché non è possibile creare istanze degli oggetti, il motore di aggiornamento pacchetti non sarà in grado di aggiornare i pacchetti.

Nota

Nella versione SQL Server 2008 di BI Development Studio il motore di aggiornamento pacchetti viene avviato automaticamente quando si apre un singolo pacchetto SQL Server 2005. Anche nell'Aggiornamento guidato pacchetti viene utilizzato lo stesso motore di aggiornamento pacchetti quando si aggiorna un batch di pacchetti.

Per determinare se limitarsi all'aggiornamento o modificare anche la versione, consultare la tabella seguente, in cui vengono identificati i vari fattori da considerare.

Opzione

Effetto sull'aggiornamento dei pacchetti

Effetto sull'esistenza in modalità affiancata

Solo aggiornamento degli oggetti personalizzati

Non è necessario eseguire passaggi aggiuntivi. Il motore di aggiornamento pacchetti è in grado di aggiornare correttamente i pacchetti che contengono gli oggetti personalizzati.

È possibile utilizzare solo le versioni SQL Server 2008 o le versioni SQL Server 2005 degli oggetti personalizzati in un determinato computer. Non è possibile utilizzare le versioni SQL Server 2005 degli oggetti personalizzati nello stesso computer in cui si trovano le versioni SQL Server 2008.

Aggiornamento e modifica della versione degli oggetti personalizzati

È necessario creare un file di mapping da distribuire con gli oggetti aggiornati. In caso contrario, il motore di aggiornamento pacchetti non è in grado di aggiornare correttamente i pacchetti che contengono gli oggetti personalizzati.

È possibile utilizzare le versioni SQL Server 2005 degli oggetti personalizzati nei pacchetti di SQL Server 2005 e le versioni SQL Server 2008 degli oggetti personalizzati nei pacchetti di SQL Server 2008 nello stesso computer.

Aggiornamento degli oggetti personalizzati

Nella procedura seguente viene illustrato come aggiornare gli oggetti personalizzati in modo che siano compatibili con SQL Server 2008 Integration Services.

Per aggiornare un oggetto personalizzato

  1. Rimuovere i riferimenti agli assembly di Integration Services con versione 9.0 e sostituirli con i riferimenti alla versione 10.0 degli stessi assembly.

  2. Rinominare gli oggetti IDTSxxx90 nel codice specificando gli oggetti IDTSxxx100 equivalenti.

  3. Cercare avvisi relativi a membri del codice deprecati e sostituirli con i nuovi membri equivalenti.

Dopo aver aggiornato gli oggetti personalizzati, è possibile scegliere se si desidera anche modificarne la versione. Non è necessario modificare la versione degli oggetti personalizzati aggiornati. Se si decide di non modificare la versione degli oggetti personalizzati, sarà necessario distribuire gli oggetti personalizzati aggiornati come descritto più avanti in questo argomento.

Se tuttavia si desidera utilizzare versioni diverse degli oggetti personalizzati affiancate nei pacchetti di SQL Server 2005 Integration Services e SQL Server 2008 Integration Services, è necessario modificare la versione degli oggetti aggiornati come descritto nella sezione successiva.

Modifica della versione degli oggetti personalizzati

La modalità di modifica della versione degli oggetti personalizzati varia a seconda che tali oggetti siano stati scritti in codice gestito o nativo:

  • Codice gestito. Per gli oggetti personalizzati scritti in codice gestito, la modifica della versione implica l'incremento del numero di versione degli assembly.

  • Codice nativo. Per gli oggetti personalizzati scritti in codice nativo, la modifica della versione implica la modifica dei valori ProgID e CLSID.

Dopo aver modificato la versione degli oggetti personalizzati, è necessario fornire i file di mapping dell'aggiornamento per tali oggetti. Durante l'aggiornamento dei pacchetti, questi file di mapping indicano al motore di aggiornamento pacchetti come sostituire le versioni precedenti degli oggetti personalizzati con le nuove versioni.

Mapping delle versioni dell'oggetto personalizzato per l'aggiornamento

In SQL Server 2008 Integration Services viene aggiunta una nuova sottocartella, UpgradeMappings, nella cartella %Programmi%\Microsoft SQL Server\100\DTS. In questa sottocartella vengono distribuiti i file di mapping che indicano al motore di aggiornamento pacchetti come eseguire il mapping degli oggetti di SQL Server 2005 Integration Services ai nuovi equivalenti di SQL Server 2008.

Una volta distribuiti i file di mapping alla sottocartella UpgradeMappings, Integration Services sarà in grado di aggiornare i pacchetti che contengono gli oggetti personalizzati. I file di mapping sono necessari solo durante l'aggiornamento dei pacchetti. Al termine dell'aggiornamento, è possibile rimuoverli. Per ulteriori informazioni, vedere Aggiornamento di pacchetti di Integration Services.

Tutti i file di mapping devono essere in formato XML, come illustrato nell'esempio seguente.

Nota

I file di mapping devono avere estensione "xml"; in caso contrario, non verranno individuati dal motore di aggiornamento pacchetti.

Esempio di file di mapping

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

Creazione dell'elemento <ExtensionMapping> personalizzato

Come illustrato nell'esempio di file di mapping precedente, l'elemento <ExtensionMapping> esegue il mapping degli oggetti di SQL Server 2005 Integration Services ai nuovi equivalenti per SQL Server 2008 Integration Services. Dopo aver creato un nuovo elemento <ExtensionMapping>, è necessario specificare i valori per gli attributi nella tabella seguente.

Attributo

Descrizione

tag

Testo che descrive l'oggetto personalizzato. Questa descrizione viene utilizzata per la registrazione.

oldAssemblyStrongName

Nome sicuro dell'assembly dell'oggetto personalizzato in SQL Server 2005 Integration Services.

newAssemblyStrongName

Nome sicuro dell'assembly dell'oggetto personalizzato in SQL Server 2008 Integration Services.

Per il mapping degli assembly, sono disponibili le opzioni seguenti:

  • È possibile utilizzare il nome di classe completo: <nome assembly>.<nome classe>, <nome assembly>, Version=<versione>, Culture=<lingua>, PublicKeyToken=<chiave>. Questo formato è illustrato nell'esempio di file di mapping riportato in precedenza in questo argomento.

  • È possibile specificare il nome sicuro dell'assembly, senza il nome della classe, come illustrato nell'esempio seguente:

    <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 si specifica il nome sicuro dell'assembly, verrà eseguito il mapping di tutte le classi dell'assembly precedente al nuovo assembly.

Distribuzione degli oggetti personalizzati aggiornati

La procedura per la distribuzione degli oggetti personalizzati aggiornati è simile a quella per SQL Server 2005. L'unica differenza è che in questo caso l'assembly personalizzato viene copiato in una sottocartella della cartella %Programmi%\Microsoft SQL Server\100\DTS anziché nella cartella %Programmi%\Microsoft SQL Server\90\DTS.

Se si modifica la versione degli oggetti personalizzati, distribuire i relativi file di mapping nella cartella UpgradeMappings per supportare l'aggiornamento automatizzato di pacchetti che utilizzano gli oggetti con la nuova versione.

Icona di Integration Services (piccola) Rimanere aggiornati con Integration Services

Per informazioni sui download, gli articoli, gli esempi e i video Microsoft più recenti, nonché sulle soluzioni selezionate dalla community, visitare la pagina Integration Services su MSDN o Technet:

Per ricevere notifica automatica su questi aggiornamenti, sottoscrivere i feed RSS disponibili nella pagina.