Update: Ein Skripttask oder eine Skriptkomponente wird mehrmals in doppelter Ausführung ausgeführt, wenn Sie Pakete ausführen, die Skriptaufgaben oder Skriptkomponenten parallel in SSIS enthalten

Gilt für: Microsoft SQL Server 2005 Standard EditionMicrosoft SQL Server 2005 Developer EditionMicrosoft SQL Server 2005 Enterprise Edition

Fehler Nr.: 447320 (SQLBUDT)Fehler Nr.: 411552 (SQLBUDT)

Problembeschreibung


Stellen Sie sich folgendes Szenario vor:
  • Sie verfügen über ein Microsoft SQL Server 2005 Integration Services (SSIS)-Paket, das eine Skriptaufgabe im Steuerelementfluss oder eine Skriptkomponente im Datenfluss enthält.
  • Sie kopieren und fügen das SSIS-Paket (die .dtsx-Datei) ein, um mehrere Kopien desselben Pakets zu erstellen.
  • Sie erstellen einige Execute Package-Aufgaben in einem übergeordneten SSIS-Paket und geben dann die kopierten Pakete in den Aufgaben Paket ausführen an.
  • Die Tasks "Paket ausführen" werden parallel innerhalb des übergeordneten Pakets ausgeführt.
  • Die ExecuteOutOfProcess-Eigenschaft der Execute Package-Tasks ist auf FALSE festgelegt.
  • Sie führen das übergeordnete SSIS-Paket aus.
In diesem Szenario stellen Sie möglicherweise fest, dass ein Skripttask oder eine Skriptkomponente mehrmals in doppelter Ausführung ausgeführt wird. Es kann sogar von der falschen Execute Package-Aufgabe ausgeführt werden.

Ursache


Dieses Problem tritt aufgrund der doppelten Projektnamen der Skriptaufgaben oder der Skriptkomponenten in Microsoft Visual Studio for Applications auf. Nachdem Sie die .dtsx-Datei kopiert und eingefügt haben, verfügen die Skriptaufgaben oder die Skriptkomponenten in diesen beiden Paketen über dieselbe GUID für die ID-Eigenschaft. Wenn Sie das übergeordnete SSIS-Paket ausführen, führt SSIS möglicherweise eine der Skriptaufgaben oder die Skriptkomponenten mehrmals in doppelter Ausführung fälschlicherweise aus. Sie erwarten jedoch, dass SSIS jede Skriptaufgabe oder Skriptkomponente unabhängig ausführt. Hinweis Visual Studio for Applications wird zum Entwerfen und Kompilieren der Skriptaufgaben oder der Skriptkomponenten in SSIS verwendet.

Fehlerbehebung


Service Pack-Informationen

Um dieses Problem zu beheben, rufen Sie das neueste Service Pack für SQL Server 2005 ab. Weitere Informationen erhalten Sie, um den Artikel in der Microsoft Knowledge Base anzuzeigen:
913089 So erhalten Sie das neueste Service Pack für SQL Server 2005

Problemumgehung


Führen Sie die folgenden Schritte aus, um dieses Problem zu umgehen:
  1. Öffnen Sie das kopierte SSIS-Paket in SQL Server Business Intelligence Development Studio.
  2. Drücken Sie STRG+X, um die problematische Skriptaufgabe oder die problematische Skriptkomponente zu löschen.
  3. Drücken Sie in demselben Paket, das die problematische Skriptaufgabe oder die problematische Skriptkomponente enthält, STRG+V, um die Skriptaufgabe oder die Skriptkomponente einzufügen.
Nachdem Sie diese Schritte ausgeführt haben, wird automatisch eine neue GUID für die ID-Eigenschaft generiert. Wenn die PreCompile-Eigenschaft für das Paket, das die problematische Skriptaufgabe oder die problematische Skriptkomponente enthält, auf True festgelegt ist, werden die Skriptaufgaben oder die Skriptkomponenten vorkompiliert. In diesem Fall müssen Sie die Skriptaufgaben oder die Skriptkomponenten neu kompilieren. Öffnen Sie dazu den Skript-Designer, und schließen Sie dann den Skript-Designer. Möglicherweise müssen Sie die Präzedenzeinschränkungen für die eingefügte Skriptaufgabe oder die eingefügte Skriptkomponente neu definieren. Um einen eindeutigen Projektnamen für die Skriptaufgaben manuell zu erstellen, klicken Sie im Dialogfeld Skripttransformations-Editor auf Entwurfsskript, und bearbeiten Sie dann manuell die Project Name-Eigenschaft in Visual Studio for Applications. Hinweis Sie können keinen eindeutigen Projektnamen für Skriptkomponenten im Datenfluss erstellen.

Status


Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt.

Weitere Informationen


Schritte zum Reproduzieren des Problems

  1. Bearbeiten Sie die Skripts im kopierten SSIS-Paket, um einen Vorgang für das Paket anzupassen. Sie können ein Meldungsfeld oder ein protokolliertes Ereignis anpassen, um das Problem zu reproduzieren.
  2. Speichern Sie die Änderungen am kopierten Paket.
  3. Erstellen Sie ein SSIS-Paket, das eine Skriptaufgabe im Steuerelementfluss oder eine Skriptkomponente im Datenfluss verwendet.
  4. Speichern Sie das Paket.
  5. Kopieren Sie das Paket in den Projektmappen-Explorer oder in das Dateisystem, und fügen Sie es ein.
  6. Erstellen Sie ein neues übergeordnetes SSIS-Paket, das zwei Execute Package-Tasks verwendet, um das ursprüngliche SSIS-Paket und das kopierte SSIS-Paket parallel auszuführen.
  7. Führen Sie das übergeordnete Paket aus.
Entweder wird die Skriptaufgabe aus dem ursprünglichen SSIS-Paket oder die Skriptaufgabe aus dem kopierten Paket ausgeführt. Sie erwarten jedoch, dass beide SSIS-Pakete im übergeordneten Paket ausgeführt werden.