Aktualisieren von benutzerdefinierten Objekten für SQL Server 2008 Integration Services
In SQL Server 2008 gibt es einige neue Integration Services-Funktionen, die Änderungen verursachen, welche sich auf in SQL Server 2005 Integration Services erstellte benutzerdefinierte Objekte auswirken. Wenn Sie diese benutzerdefinierten Objekte in SQL Server 2008 Integration Services-Paketen verwenden möchten, müssen Sie sie aktualisieren.
In diesem Thema wird beschrieben, wie Sie sich für eine optimale Aktualisierungsoption für benutzerdefinierte Objekte entscheiden und wie Sie diese Objekte aktualisieren und von SQL Server 2005 Integration Services in SQL Server 2008 Integration Services bereitstellen. Außerdem wird erläutert, wie Sie sicherstellen, dass die aktualisierten benutzerdefinierten Objekte während der automatischen Aktualisierung von Paketen gefunden werden können.
Entscheiden, wie die benutzerdefinierten Objekte aktualisiert werden
Sie haben die Möglichkeit, benutzerdefinierte Objekte einfach zu aktualisieren oder sie zu aktualisieren und ihnen eine neue Version zuzuweisen.
Nur aktualisieren Bei dieser Option ändern Sie die benutzerdefinierten Objekte, damit sie mit SQL Server 2008 Integration Services kompatibel sind.
Aktualisieren und neue Version zuweisen Bei dieser Option aktualisieren Sie zuerst die Objekte. Anschließend weisen Sie den aktualisierten Objekten eine neue Assemblyversion zu und erstellen eine Zuordnungsdatei mit den Speicherorten dieser neuen Objekte.
Egal, für welche Aktualisierungsoption Sie sich entscheiden, müssen Sie die benutzerdefinierten Objekte aktualisieren, bevor Sie oder Benutzer Ihrer Objekte versuchen, Pakete zu aktualisieren, in denen diese Objekte enthalten sind. Wenn das Paketaktualisierungsmodul Pakete aktualisiert, versucht es, die benutzerdefinierten Objekte in diesen Paketen zu instanziieren. Falls der Computer jedoch nicht über aktualisierte Versionen dieser benutzerdefinierten Objekte verfügt, kann das Paketaktualisierungsmodul die Objekte nicht instanziieren. In diesem Fall ist das Paketaktualisierungsmodul auch nicht in der Lage, die Pakete zu aktualisieren.
Hinweis |
---|
Die SQL Server 2008-Version von BI Development Studio startet das Paketaktualisierungsmodul automatisch, sobald Sie ein einzelnes SQL Server 2005-Paket öffnen. Der Paketaktualisierungs-Assistent verwendet dasselbe Paketaktualisierungsmodul, wenn Sie einen Paketstapel aktualisieren. |
Um Ihnen die Entscheidung zu erleichtern, ob Sie die benutzerdefinierten Objekte nur aktualisieren oder ihnen auch eine neue Version zuweisen sollen, enthält die folgende Tabelle verschiedene zu berücksichtigende Faktoren.
Option |
Auswirkung auf Paketaktualisierung |
Auswirkung auf parallele Existenz |
---|---|---|
Benutzerdefinierte Objekte nur aktualisieren |
Sie müssen keine zusätzlichen Schritte ausführen. Das Paketaktualisierungsmodul kann Pakete, die die benutzerdefinierten Objekte enthalten, erfolgreich aktualisieren. |
Sie können nur die SQL Server 2008-Versionen oder die SQL Server 2005-Versionen der benutzerdefinierten Objekte auf einem bestimmten Computer verwenden. Sie können die SQL Server 2005-Versionen der benutzerdefinierten Objekte nicht auf demselben Computer wie die SQL Server 2008-Versionen verwenden. |
Benutzerdefinierte Objekte aktualisieren und ihnen eine neue Version zuweisen |
Sie müssen eine Zuordnungsdatei erstellen, die mit den aktualisierten Objekten verteilt werden soll. Sonst kann das Paketaktualisierungsmodul Pakete, die die benutzerdefinierten Objekte enthalten, nicht erfolgreich aktualisieren. |
Sie können die SQL Server 2005-Versionen der benutzerdefinierten Objekte in SQL Server 2005-Paketen und die SQL Server 2008-Versionen der benutzerdefinierten Objekte in SQL Server 2008-Paketen auf demselben Computer verwenden. |
Aktualisieren der benutzerdefinierten Objekte
Das folgende Verfahren zeigt, wie benutzerdefinierte Objekte aktualisiert werden, sodass sie mit SQL Server 2008 Integration Services kompatibel sind.
So aktualisieren Sie ein benutzerdefiniertes Objekt
Entfernen Sie Verweise auf Integration Services-Assemblys mit Version 9.0, und ersetzen Sie sie durch Verweise auf Version 10.0 derselben Assemblys.
Benennen Sie IDTSxxx90-Objekte im Code in die entsprechenden IDTSxxx100-Objekte um.
Achten Sie auf Warnungen zu veralteten Codeelementen, und ersetzen Sie sie durch die entsprechenden neuen Elemente.
Nachdem Sie die benutzerdefinierten Objekte aktualisiert haben, besteht die Möglichkeit, ihnen auch eine neue Version zuzuweisen. Dies ist jedoch nicht verpflichtend. Wenn Sie sich dafür entscheiden, den benutzerdefinierten Objekten keine neue Version zuzuweisen, müssen Sie die aktualisierten Objekte wie weiter unten beschrieben bereitstellen.
Falls Sie jedoch verschiedene Versionen der benutzerdefinierten Objekte parallel in SQL Server 2005 Integration Services- und SQL Server 2008 Integration Services-Paketen verwenden möchten, müssen Sie den aktualisierten Objekten wie im nächsten Abschnitt beschrieben eine neue Version zuweisen.
Zuweisen einer neuen Version zu benutzerdefinierten Objekten
Wie Sie den benutzerdefinierten Objekten eine neue Version zuweisen, hängt davon ab, ob Sie die Objekte in verwaltetem oder systemeigenem Code geschrieben haben.
Verwalteter Code: Bei in verwaltetem Code geschriebenen benutzerdefinierten Objekten wird die Assemblyversionsnummer inkrementiert.
Systemeigener Code: Bei in systemeigenem Code geschriebenen benutzerdefinierten Objekten werden die Programm-ID und CLSID geändert.
Nachdem Sie den benutzerdefinierten Objekten eine neue Version zugewiesen haben, müssen Sie Aktualisierungszuordnungsdateien für diese Objekte bereitstellen. Während der Paketaktualisierung kann das Paketaktualisierungsmodul diesen Zuordnungsdateien entnehmen, wie die Vorgängerversionen der benutzerdefinierten Objekte durch neue Versionen ersetzt werden sollen.
Zuordnen der Versionen der benutzerdefinierten Objekte für die Aktualisierung
SQL Server 2008 Integration Services fügt im Ordner %Programme%\Microsoft SQL Server\100\DTS einen neuen Unterordner namens UpgradeMappings hinzu. In diesem Unterordner stellen Sie die Zuordnungsdateien bereit, denen das Paketaktualisierungsmodul entnehmen kann, wie SQL Server 2005 Integration Services-Objekte ihren neuen SQL Server 2008-Entsprechungen zugeordnet werden sollen.
Nachdem Sie die Zuordnungsdateien im Unterordner UpgradeMappings bereitgestellt haben, kann Integration Services Pakete aktualisieren, die die benutzerdefinierten Objekte enthalten. Die Zuordnungsdateien sind nur während der Paketaktualisierung notwendig. Nachdem alle Pakete aktualisiert wurden, können Sie sie entfernen. Weitere Informationen finden Sie unter Aktualisieren von Integration Services-Paketen.
Alle Zuordnungsdateien müssen das XML-Format aufweisen, wie in der folgenden Beispielzuordnungsdatei zu sehen ist.
Hinweis |
---|
Die Zuordnungsdateien müssen die Dateierweiterung .xml haben, da sie sonst vom Paketaktualisierungsmodul nicht erkannt werden. |
Beispielzuordnungsdatei
<?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>
Erstellen eines eigenen <ExtensionMapping>-Elements
Wie in der obigen Beispielzuordnungsdatei zu sehen, ist das <ExtensionMapping>-Element das Element, das die SQL Server 2005 Integration Services-Objekte ihren neuen Entsprechungen für SQL Server 2008 Integration Services zuordnet. Nachdem Sie ein neues <ExtensionMapping>-Element erstellt haben, müssen Sie Werte für die Attribute in der folgenden Tabelle angeben.
Attribut |
Beschreibung |
---|---|
tag |
Text, in dem das benutzerdefinierte Objekt beschrieben wird. (Diese Beschreibung wird zur Protokollierung verwendet.) |
oldAssemblyStrongName |
Der starke Name der Assembly des benutzerdefinierten Objekts in SQL Server 2005 Integration Services. |
newAssemblyStrongName |
Der starke Name der Assembly des benutzerdefinierten Objekts in SQL Server 2008 Integration Services. |
Beim Zuordnen von Assemblys haben Sie die folgenden Möglichkeiten:
Sie können den vollqualifizierten Klassennamen verwenden: <Assemblyname>.<Klassenname>, <Assemblyname>, Version = <Version>, Culture = <Kultur>, PublicKeyToken = <Schlüssel>. Dieses Format ist in der weiter oben aufgeführten Beispielzuordnungsdatei zu sehen.
Sie können den starken Namen der Assembly selbst ohne den Klassennamen angeben. Dies ist im folgenden Beispiel dargestellt:
<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" />
Wenn Sie den starken Namen der Assembly angeben, werden alle Klassen der alten Assembly der neuen Assembly zugeordnet.
Bereitstellen der aktualisierten benutzerdefinierten Objekte
Die Schritte zum Bereitstellen der aktualisierten benutzerdefinierten Objekte ähneln jenen für SQL Server 2005. Der einzige Unterschied besteht darin, dass Sie nun die benutzerdefinierte Assembly in einen Unterordner des Ordners %Programme%\Microsoft SQL Server\100\DTS anstatt des Ordners %Programme%\Microsoft SQL Server\90\DTS kopieren.
Wenn Sie den benutzerdefinierten Objekten eine neue Version zuweisen, stellen Sie die Zuordnungsdateien unbedingt im Ordner UpgradeMappings bereit, damit eine automatische Aktualisierung von Paketen möglich ist, die diese Objekte mit neuer Version verwenden.
|