Ereignishandler von SQL Server Integration Services

Zur Laufzeit lösen ausführbare Dateien (Pakete und Foreach-Schleifencontainer, For-Schleifencontainer, Sequenzcontainer und Taskhostcontainer) Ereignisse aus . Beispielsweise wird ein OnError-Ereignis ausgelöst, wenn ein Fehler auftritt. Sie können benutzerdefiniert Ereignishandler für diese Ereignisse erstellen, um die Paketfunktionalität zu erweitern und die Verwaltung der Pakete zur Laufzeit zu vereinfachen. Mit Ereignishandlern können folgende Aufgaben ausgeführt werden:

  • Cleanup des temporären Datenspeichers, wenn die Ausführung eines Pakets oder Tasks beendet ist.

  • Abrufen von Systeminformationen, um die Ressourcenverfügbarkeit zu bewerten, bevor ein Paket ausgeführt wird.

  • Aktualisieren von Daten in einer Tabelle, wenn bei einer Suche in einer Verweistabelle ein Fehler auftritt.

  • Senden einer E-Mail-Nachricht bei einem Fehler oder einer Warnung oder bei einem Fehler im Zusammenhang mit einem Task.

Falls ein Ereignis keinen Ereignishandler aufweist, wird das Ereignis im nächsten übergeordneten Container der Containerhierarchie in einem Paket ausgelöst. Wenn dieser Container einen Ereignishandler aufweist, wird der Ereignishandler als Antwort auf das Ereignis ausgeführt. Andernfalls wird das Ereignis im nächsten übergeordneten Container der Containerhierarchie ausgelöst.

Im folgenden Diagramm wird ein einfaches Paket mit einem For-Schleifencontainer, der einen Task SQL ausführen enthält, angezeigt.

Paket, For-Schleife, Taskhost und Task 'SQL ausführen'

Nur das Paket hat einen Ereignishandler, und zwar für das OnError-Ereignis. Wenn beim Ausführen des Tasks SQL ausführen ein Fehler auftritt, wird der OnError-Ereignishandler für das Paket ausgeführt. Im folgenden Diagramm wird die Aufrufsequenz angezeigt, durch die der OnError-Ereignishandler für das Paket ausgeführt wird.

Ereignishandlerfluss

Ereignishandler sind Elemente einer Ereignishandlerauflistung, und alle Container schließen diese Auflistung ein. Wenn Sie das Paket mit dem SSIS-Designer erstellen, können Sie die Elemente der Ereignishandlerauflistungen im Ordner Ereignishandler auf der Registerkarte Paket-Explorer des SSIS-Designers anzeigen.

Es gibt folgende Möglichkeiten, um den Ereignishandlercontainer zu konfigurieren:

  • Geben Sie einen Namen und eine Beschreibung für den Ereignishandler an.

  • Geben Sie an, ob der Ereignishandler ausgeführt wird, ob für das Paket bei einem Ereignishandlerfehler ein Fehler gemeldet wird und nach wie vielen Fehlern der Ereignishandler einen Fehler meldet.

  • Geben Sie ein Ausführungsergebnis an, das anstelle des vom Ereignishandler zur Laufzeit zurückgegebenen Ausführungsergebnisses zurückgegeben werden soll.

  • Geben Sie die Transaktionsoption für den Ereignishandler an.

  • Geben Sie den Protokollierungsmodus für den Ereignishandler an.

Ereignishandlerinhalt

Das Erstellen eines Ereignishandlers ist mit dem Erstellen eines Pakets vergleichbar. Ein Ereignishandler weist Tasks und Container auf, die in einer Ablaufsteuerung angeordnet sind. Ein Ereignishandler kann außerdem Datenflüsse enthalten. Der SSIS-Designer weist die Registerkarte Ereignishandler zum Erstellen benutzerdefinierter Ereignishandler auf. Weitere Informationen finden Sie unter Erstellen von Paketereignishandlern.

Ereignishandler können auch programmgesteuert erstellt werden. Weitere Informationen finden Sie unter Programmgesteuerte Behandlung von Ereignissen.

Laufzeitereignisse

In der folgenden Tabelle werden die Ereignishandler von Integration Services aufgeführt und die Laufzeitereignisse beschrieben, durch die die Ereignishandler ausgeführt werden.

Ereignishandler

Ereignis

OnError

Der Ereignishandler für das OnError-Ereignis. Dieses Ereignis wird durch eine ausführbare Datei ausgelöst, wenn ein Fehler auftritt.

OnExecStatusChanged

Der Ereignishandler für das OnExecStatusChanged-Ereignis. Dieses Ereignis wird durch eine ausführbare Datei ausgelöst, wenn sich deren Ausführungsstatus ändert.

OnInformation

Der Ereignishandler für das OnInformation-Ereignis. Dieses Ereignis wird während der Prüfung und Ausführung einer ausführbaren Datei ausgelöst, um Informationen zu melden. Dieses Ereignis übermittelt nur Informationen, keine Fehler oder Warnungen.

OnPostExecute

Der Ereignishandler für das OnPostExecute-Ereignis. Dieses Ereignis wird durch eine ausführbare Datei ausgelöst, unmittelbar nachdem sie ausgeführt wurde.

OnPostValidate

Der Ereignishandler für das OnPostValidate-Ereignis. Dieses Ereignis wird durch eine ausführbare Datei ausgelöst, nachdem sie überprüft wurde.

OnPreExecute

Der Ereignishandler für das OnPreExecute-Ereignis. Dieses Ereignis wird durch eine ausführbare Datei ausgelöst, unmittelbar bevor sie ausgeführt wird.

OnPreValidate

Der Ereignishandler für das OnPreValidate-Ereignis. Dieses Ereignis wird durch eine ausführbare Datei ausgelöst, wenn die Überprüfung gestartet wird.

OnProgress

Der Ereignishandler für das OnProgress-Ereignis. Dieses Ereignis wird durch eine ausführbare Datei ausgelöst, wenn die ausführbare Datei einen messbaren Fortschritt aufweist.

OnQueryCancel

Der Ereignishandler für das OnQueryCancel-Ereignis. Dieses Ereignis wird durch eine ausführbare Datei ausgelöst, um zu bestimmen, ob deren Ausführung beendet werden soll.

OnTaskFailed

Der Ereignishandler für das OnTaskFailed-Ereignis. Dieses Ereignis wird durch einen Fehler bei einem Task ausgelöst.

OnVariableValueChanged

Der Ereignishandler für das OnVariableValueChanged-Ereignis. Dieses Ereignis wird durch eine ausführbare Datei ausgelöst, wenn sich der Wert einer Variablen ändert. Dieses Ereignis wird durch die ausführbare Datei ausgelöst, für die die Variable definiert ist. Dieses Ereignis wird nicht ausgelöst, wenn Sie die RaiseChangeEvent-Eigenschaft für die Variable auf False festlegen. Weitere Informationen finden Sie unter SQL Server Integration Services-Variablen.

OnWarning

Der Ereignishandler für das OnWarning-Ereignis. Dieses Ereignis wird durch eine ausführbare Datei ausgelöst, wenn eine Warnung auftritt.

Konfigurieren eines Ereignishandlers

Eigenschaften können Sie im Fenster Eigenschaften von Business Intelligence Development Studio oder programmgesteuert festlegen.

Weitere Informationen zum Festlegen dieser Eigenschaften in Business Intelligence Development Studio finden Sie unter Vorgehensweise: Festlegen der Eigenschaften eines Tasks oder Containers.

Programmgesteuertes Konfigurieren eines Ereignishandlers

Weitere Informationen zum programmgesteuerten Festlegen dieser Eigenschaften finden Sie unter DtsEventHandler.

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.