Verwenden von Prüfpunkten in Paketen

In Integration Services können fehlerhafte Pakete an dem Punkt neu gestartet werden, an dem der Fehler aufgetreten ist. Sie brauchen also nicht noch einmal vollständig ausgeführt werden. Wenn ein Paket zum Verwenden von Prüfpunkten konfiguriert ist, werden Informationen zur Ausführung des Pakets in eine Prüfpunktdatei geschrieben. Wenn das fehlerhafte Paket erneut ausgeführt wird, wird die Prüfpunktdatei verwendet, um das Paket von dem Punkt aus, an dem der Fehler aufgetreten ist, auszuführen. Wenn das Paket erfolgreich ausgeführt wird, wird die Prüfpunktdatei gelöscht und beim nächsten Ausführen des Pakets neu erstellt.

Das Verwenden von Prüfpunkten in einem Paket bietet die folgenden Vorteile:

  • Vermeiden von wiederholten Download- und Uploadvorgängen für umfangreiche Dateien. Beispielsweise kann ein Paket, das mehrere umfangreiche Dateien mithilfe je eines FTP-Tasks herunterlädt, nach dem Herunterladen einer einzigen fehlerhaften Datei neu gestartet werden und anschließend nur diese eine Datei erneut herunterladen.

  • Vermeiden, dass große Datenmengen wiederholt geladen werden müssen. Beispielsweise kann ein Paket, das mithilfe von einzelnen Masseneinfügungstasks Masseneinfügungen in Dimensionstabellen in einem Data Warehouse ausführt, neu gestartet werden, wenn eine Einfügung für eine einzige Dimensionstabelle einen Fehler auslöst. Anschließend braucht nur die fehlerhafte Dimension erneut geladen werden.

  • Vermeiden wiederholter Wertaggregationen. Beispielsweise kann ein Paket, das mithilfe von einzelnen Datenflusstasks zahlreiche verschiedene Aggregate berechnet, wie z. B. Mittelwerte oder Summen, neu gestartet werden, nachdem die Berechnung einer einzigen Aggregation einen Fehler auslöst. Anschließend braucht nur die fehlerhafte Aggregation neu berechnet werden.

Wenn ein Paket für das Verwenden von Prüfpunkten konfiguriert ist, zeichnet Integration Services den Punkt, an dem neu gestartet werden soll, in der Prüfpunktdatei auf. Der in der Prüfpunktdatei aufgezeichnete Punkt, an dem neu gestartet werden soll, ist vom Typ des fehlerhaften Containers und der Implementierung von Features wie z. B. Transaktionen abhängig. Die aktuellen Werte von Variablen werden ebenfalls in der Prüfpunktdatei erfasst. Die Werte von Variablen mit dem Object-Datentyp werden jedoch nicht in Prüfpunktdateien gespeichert.

Wenn das Paket neu gestartet wird, lädt Integration Services die Paketkonfigurationen nicht neu. Stattdessen verwendet das Paket die Konfigurationsinformationen, die in die Prüfpunktdatei geschrieben wurden. Auf diese Weise wird sichergestellt, dass das Paket beim erneuten Ausführen dieselben Konfigurationen wie beim ursprünglichen (fehlerhaften) Ausführen verwendet.

Definieren von Prüfpunkten, an denen neu gestartet wird

Die folgenden Integration Services-Komponenten sind die unteilbaren Arbeitseinheiten, die Sie mithilfe von Prüfpunkten neu starten können:

  • Task   Die kleinste unteilbare Arbeitseinheit, die neu gestartet werden kann, ist der Taskhostcontainer, der einen einzelnen Task kapselt.

    HinweisHinweis

    Da der Datenflusstask mit seinem gesamten Inhalt eine unteilbare Arbeitseinheit ist, können Sie im Verlauf eines Datenflusses kein Paket neu starten. Um zu vermeiden, dass der gesamte Datenfluss erneut ausgeführt werden muss, können Sie Pakete mit mehreren Datenflusstasks entwerfen. Auf diese Weise werden beim Neustarten des Pakets nur die Datenflusstasks erneut ausgeführt, bei deren Ausführung Fehler aufgetreten sind.

  • Transaktionscontainer   Ein Transaktionscontainer ist auch eine unteilbare Arbeitseinheit, die neu gestartet werden kann. Wenn ein Paket während des Ausführens eines Transaktionscontainers beendet wird, wird auch die Transaktion beendet, und für alle im Rahmen der Transaktion ausgeführten Vorgänge wird ein Rollback ausgeführt. Die Prüfpunktdatei enthält jedoch keine Informationen zu den Vorgängen, die von den untergeordneten Containern abgeschlossen wurden, und sowohl der Transaktionscontainer als auch seine untergeordneten Container werden erneut ausgeführt, wenn das Paket neu startet.

    Um die möglichen Konflikte zwischen Prüfpunkten und Transaktionen zu minimieren, speichert Integration Services keine Prüfpunktinformationen zu den Vorgängen innerhalb eines Containers, wenn eine der folgenden Bedingungen erfüllt ist:

    • Der Wert der TransactionOption-Eigenschaft des Containers lautet Required.

      – Oder –

    • Der Wert der TransactionOption-Eigenschaft des Containers lautet Supported, aber der übergeordnete Container besitzt eine Transaktion oder ist darin registriert.

    HinweisHinweis

    Das Verwenden von Prüfpunkten und Transaktionen im gleichen Paket könnte unerwartete Ergebnisse verursachen. Wenn beispielsweise ein Paket einen Fehler verursacht und von einem Prüfpunkt neu startet, wiederholt das Paket möglicherweise eine Transaktion, die bereits erfolgreich ausgeführt wurde.

  • Foreach-Schleifencontainer   Der Foreach-Schleifencontainer ist eine weitere unteilbare Arbeitseinheit, die neu gestartet werden kann. Die Prüfpunktdatei enthält jedoch keine Informationen zu den Vorgängen, die von den untergeordneten Containern abgeschlossen wurden, und sowohl der Foreach-Schleifencontainer als auch seine untergeordneten Container werden erneut ausgeführt, wenn das Paket neu startet.

Konfigurieren des Neustarts eines Pakets

Die Prüfpunktdatei enthält das Ausführungsergebnis aller abgeschlossenen Arbeitseinheiten (wie oben in diesem Thema beschrieben), die aktuellen Werte der benutzerdefinierten und der Systemvariablen sowie Paketkonfigurationsinformationen. Die Datei enthält außerdem den eindeutigen Bezeichner des Pakets. Der Paketbezeichner in der Prüfpunktdatei muss mit dem des Pakets übereinstimmen, damit das Paket neu gestartet werden kann. Anderenfalls tritt beim Neustarten ein Fehler auf. Auf diese Weise wird vermieden, dass ein Paket eine Prüfpunktdatei verwendet, die von einer anderen Paketversion geschrieben wurde. Wenn das Paket nach dem Neustarten erfolgreich ausgeführt wird, wird die Prüfpunktdatei gelöscht.

In der folgenden Tabelle sind die Paketeigenschaften aufgeführt, die Sie zum Implementieren von Prüfpunkten festlegen können.

Eigenschaft

Beschreibung

CheckpointFileName

Gibt den Namen der Prüfpunktdatei an.

CheckpointUsage

Gibt an, ob Prüfpunkte verwendet werden.

SaveCheckpoints

Gibt an, ob das Paket Prüfpunkte speichert. Diese Eigenschaft muss auf True festgelegt sein, damit ein Paket an dem Punkt neu gestartet wird, an dem ein Fehler aufgetreten ist.

Außerdem müssen Sie für alle Container des Pakets, die das Paket nach einem Fehler neu starten sollen, die FailPackageOnFailure-Eigenschaft auf true festlegen.

Mit der ForceExecutionResult-Eigenschaft können Sie die Verwendung der Prüfpunkte eines Pakets testen. Sie können einen Echtzeitfehler imitieren, indem Sie die ForceExecutionResult-Eigenschaft eines Tasks oder eines Containers auf Failure festlegen. Wenn Sie das Paket erneut ausführen, werden der fehlerhafte Task bzw. die fehlerhaften Container erneut ausgeführt.

Festlegen der CheckpointUsage-Eigenschaft

In der folgenden Tabelle sind die Werte für die CheckpointUsage-Eigenschaft aufgelistet.

Wert

Beschreibung

Never

Gibt an, dass die Prüfpunktdatei nicht verwendet wird und dass das Paket vom Beginn des Paketworkflows aus ausgeführt wird.

Always

Gibt an, dass die Prüfpunktdatei immer verwendet wird und dass das Paket von dem Punkt aus neu gestartet wird, an dem bei der letzten Ausführung ein Fehler aufgetreten ist. Wenn die Prüfpunktdatei nicht gefunden wird, schlägt das Paket fehl.

IfExists

Gibt an, dass die Prüfpunktdatei verwendet wird, falls sie vorhanden ist. Wenn die Prüfpunktdatei vorhanden ist, wird das Paket an dem Punkt neu gestartet, an dem bei der letzten Ausführung ein Fehler aufgetreten ist. Andernfalls wird das Paket vom Beginn des Paketworkflows aus ausgeführt.

HinweisHinweis

Die Verwendung von dtexec mit der Option /CheckPointing on entspricht dem Festlegen der Eigenschaften SaveCheckpoints und CheckpointUsage für das Paket auf die Werte True bzw. Always. Weitere Informationen finden Sie unter dtexec (Dienstprogramm).

Auswählen eines Speicherorts für Prüfpunktdateien

In einem Failovercluster, in dem Integration Services auf mehreren Knoten des Clusters installiert ist, können Sie Prüfpunktdateien an einem freigegebenen Speicherort speichern. Wenn dann ein Failover auftritt, können Sie ein unterbrochenes Paket auf einem anderen Knoten des Clusters am letzten Prüfpunkt neu starten.

Sichern von Prüfpunktdateien

Der Schutz auf Paketebene schließt nicht den Schutz von Prüfpunktdateien ein. Daher müssen diese Dateien separat gesichert werden. Prüfpunktdaten können nur im Dateisystem gespeichert werden. Sie sollten daher eine Zugriffssteuerungsliste (ACL, Access Control List) des Betriebssystems verwenden, um den Speicherort der Datei bzw. den Ordner, in dem die Datei gespeichert wird, zu sichern. Prüfpunktdateien sollten unbedingt gesichert werden, da sie Informationen zum Paketstatus enthalten, z. B. die aktuellen Variablenwerte. Beispielsweise kann eine Variable ein Recordset mit mehreren Zeilen privater Daten, wie z. B. Telefonnummern, enthalten. Weitere Informationen finden Sie unter Steuern des Zugriffs auf Dateien, die von Paketen verwendet werden.

So konfigurieren Sie die Prüfpunkteigenschaften

Integration Services (kleines Symbol) Bleiben Sie mit Integration Services auf dem neuesten Stand

Die neuesten Downloads, Artikel, Beispiele und Videos von Microsoft sowie ausgewählte Lösungen aus der Community finden Sie auf der Integration Services-Seite von MSDN oder TechNet:

Abonnieren Sie die auf der Seite verfügbaren RSS-Newsfeeds, um automatische Benachrichtigungen zu diesen Aktualisierungen zu erhalten.

Änderungsverlauf

Aktualisierter Inhalt

  • Im Abschnitt "Definieren von Prüfpunkten, an denen neu gestartet wird" wurde erläutert, bei welchen Komponenten es sich um Arbeitseinheiten handelt.

  • Der Abschnitt "Auswählen eines Speicherorts für Prüfpunktdateien" wurde hinzugefügt.