Implementieren der Protokollierung in Pakete

Aktualisiert: 15. September 2007

SQL Server 2005 Integration Services (SSIS) schließt Protokollierungsfeatures ein, mit denen beim Auftreten von Laufzeitereignissen Protokolleinträge und möglicherweise benutzerdefinierte Meldungen geschrieben werden.

Integration Services unterstützt verschiedene Gruppen von Protokollierungsanbietern und bietet Ihnen die Möglichkeit, benutzerdefinierte Protokollanbieter zu erstellen. Mit den Integration Services-Protokollanbietern können Protokolleinträge in Textdateien, SQL Server Profiler, SQL Server, im Windows-Ereignisprotokoll oder in XML-Dateien geschrieben werden.

Protokolle werden Paketen zugeordnet und auf Paketebene konfiguriert. Jeder Task oder Container in einem Paket kann Informationen in einem Paketprotokoll protokollieren. Die Tasks und Container in einem Paket können für die Protokollierung auch dann aktiviert werden, wenn das Paket selbst nicht aktiviert ist. Sie können z. B. die Protokollierung für den Task "SQL ausführen" aktivieren, ohne die Protokollierung für das übergeordnete Paket zu aktivieren. Ein Paket, ein Container oder ein Task kann in mehrere Protokolle schreiben. Sie haben die Möglichkeit, die Protokollierung nur für das Paket bzw. für einen beliebigen im Paket enthaltenen Task oder Container zu aktivieren.

Zum Anpassen der Protokollierung eines Ereignisses oder einer benutzerdefinierten Meldung wird in Integration Services ein Schema häufig protokollierter Informationen bereitgestellt, die in Protokolleinträgen aufgenommen werden. Das Integration Services-Protokollschema definiert die Informationen, die Sie protokollieren können. Für jeden Protokolleintrag können Sie Elemente aus dem Protokollschema auswählen.

Ein Paket und seine Container und Tasks protokollieren nicht dieselben Informationen, und Tasks innerhalb desselben Pakets oder Containers können verschiedene Informationen protokollieren. Ein Paket kann z. B. Operatorinformationen protokollieren, wenn das Paket gestartet wird, ein Task kann die Fehlerquelle des Tasks protokollieren, und ein weiterer Task kann Informationen protokollieren, wenn Fehler auftreten. Wenn ein Paket und seine Container mehrere Protokolle verwenden, werden dieselben Informationen in alle Protokolle geschrieben.

Sie können eine Protokollierungsebene auswählen, die Ihren Anforderungen entspricht, indem Sie die zu protokollierenden Ereignisse und die für jedes Ereignis zu protokollierenden Informationen festlegen. Eventuell enthalten Ihrer Meinung nach einige Ereignisse nützlichere Informationen als andere. Vielleicht möchten Sie z. B. nur die Computer- und Operatornamen für das PreExecute-Ereignis protokollieren, für das Error-Ereignis jedoch alle verfügbaren Informationen.

Damit die Protokolldateien keine großen Speichermengen belegen oder um eine zu umfangreiche Protokollierung zu vermeiden, was zu einer Leistungsverschlechterung führen könnte, können Sie die Protokollierung einschränken, indem Sie bestimmte zu protokollierende Ereignisse und Informationen auswählen. So können Sie z. B. ein Protokoll konfigurieren, das nur das Datum und den Computernamen für einen Fehler erfasst.

In SSIS-Designer legen Sie die Protokollierungsoptionen im Dialogfeld SSIS-Protokolle konfigurieren fest.

Protokollschema

In der folgenden Tabelle werden die Elemente im Protokollschema beschrieben.

Element Beschreibung

Computer

Der Name des Computers, auf dem das Protokollereignis auftrat.

Operator

Die Identität des Benutzers, der das Paket gestartet hat.

SourceName

Der Name des Containers oder des Tasks, für den das Protokollereignis auftrat.

SourceID

Der eindeutige Bezeichner des Pakets; der For-Schleifen-, Foreach-Schleifen- oder Sequenz-Container; oder der Task, für den das Protokollereignis auftrat.

ExecutionID

Die GUID der Paketausführungsinstanz.

MessageText

Eine dem Protokolleintrag zugeordnete Meldung.

DataBytes

Ein für den Protokolleintrag spezifisches Bytearray. Die Bedeutung dieses Feldes variiert je nach Protokolleintrag.

In der folgenden Tabelle sind die drei zusätzlichen Elemente im Protokollschema beschrieben, die nicht auf der Registerkarte Details des Dialogfeldes SSIS-Protokolle konfigurieren angezeigt werden.

Element Beschreibung

StartTime

Die Zeit, zu der die Ausführung des Containers oder des Tasks beginnt.

EndTime

Die Zeit, zu der die Ausführung des Containers oder des Tasks endet.

DataCode

Eine optionale, ganze Zahl, die in der Regel einen Wert aus der DTSExecResult-Enumeration enthält, die das Ergebnis der Container- oder Taskausführung angibt:

  • 0 – Erfolg
  • 1 – Fehlschlag
  • 2 – Abgeschlossen
  • 3 – Storniert

Protokolleinträge

Integration Services unterstützt Protokolleinträge für vordefinierte Ereignisse und stellt für viele Integration Services-Objekte benutzerdefinierte Protokolleinträge bereit. Im Dialogfeld SSIS-Protokolle konfigurieren des SSIS-Designers werden diese Ereignisse und benutzerdefinierten Protokolleinträge aufgelistet.

In der folgenden Tabelle werden die vordefinierten Ereignisse beschrieben, die beim Auftreten von Laufzeitereignissen zum Schreiben von Protokolleinträgen aktiviert werden können. Diese Protokolleinträge gelten für ausführbare Dateien, das Paket sowie die im Paket enthaltenen Tasks und Container. Der Name des Protokolleintrags entspricht dem Namen des ausgelösten Laufzeitereignisses, mit dem das Schreiben des Protokolleintrags verursacht wurde.

Ereignisse Beschreibung

OnError

Schreibt einen Protokolleintrag, wenn ein Fehler auftritt.

OnExecStatusChanged

Schreibt einen Protokolleintrag, wenn sich der Ausführungsstatus der ausführbaren Datei ändert.

OnInformation

Schreibt einen Protokolleintrag während der Prüfung und Ausführung einer ausführbaren Datei, um Informationen zu melden.

OnPostExecute

Schreibt einen Protokolleintrag unmittelbar nach Beendigung der Ausführung der ausführbaren Datei.

OnPostValidate

Schreibt einen Protokolleintrag, wenn die Überprüfung der ausführbaren Datei beendet ist.

OnPreExecute

Schreibt einen Protokolleintrag unmittelbar vor Ausführung der ausführbaren Datei.

OnPreValidate

Schreibt einen Protokolleintrag, wenn die Überprüfung der ausführbaren Datei beginnt.

OnProgress

Schreibt einen Protokolleintrag, wenn die ausführbare Datei einen messbaren Fortschritt gemacht hat.

OnQueryCancel

Schreibt einen Protokolleintrag für jeden Punkt in der Taskverarbeitung, an dem ein Abbruch der Ausführung sinnvoll ist.

OnTaskFailed

Schreibt einen Protokolleintrag, wenn ein Task fehlschlägt.

OnVariableValueChanged

Schreibt einen Protokolleintrag, wenn sich der Wert einer Variablen ändert.

OnWarning

Schreibt einen Protokolleintrag, wenn eine Warnung auftritt.

Das Paket und viele Tasks verfügen über benutzerdefinierte Protokolleinträge, die für die Protokollierung aktiviert werden können. Der Task Mail senden stellt z. B. den benutzerdefinierten Protokolleintrag SendMailTaskBegin bereit, mit dem Informationen protokolliert werden, wenn die Ausführung des Tasks Mail senden begonnen, jedoch bevor eine E-Mail-Nachricht gesendet wird. Weitere Informationen finden Sie unter Benutzerdefinierte Meldungen für die Protokollierung.

Unterscheiden von Paketkopien

Protokolldaten schließen den Namen und den GUID des Pakets ein, zu dem die Protokolleinträge gehören. Beim Erstellen eines neuen Pakets durch Kopieren eines vorhandenen Pakets werden Name und GUID des vorhandenen Pakets ebenfalls kopiert. Folglich können GUID und Name zweier Pakete identisch sein, sodass die Pakete in den Protokolldaten schwer voneinander zu unterscheiden sind.

Sie sollten den Namen und GUID der neuen Pakete ändern, um diese Mehrdeutigkeit zu umgehen. Sie können in Business Intelligence Development Studio mithilfe des Eigenschaftenfensters den GUID in der ID-Eigenschaft neu generieren und den Wert der Name-Eigenschaft aktualisieren. Sie haben auch die Möglichkeit, den GUID und Namen programmgesteuert oder mit dem Dienstprogramm dtutil zu ändern. Weitere Informationen finden Sie unter Festlegen von Paketeigenschaften und dtutil (Dienstprogramm).

Übergeordnete Protokollierungsoptionen

Häufig entsprechen die Protokollierungsoptionen von Tasks und For-Schleifen-, Foreach-Schleifen- und Sequenz-Containern denen des Paketcontainers oder eines übergeordneten Containers. In diesem Fall können Sie diese so konfigurieren, dass sie die Protokollierungsoptionen von ihrem übergeordneten Container erben. In einem For-Schleifen-Container, der den Task "SQL ausführen" enthält, kann z. B. der Task "SQL ausführen" die Protokollierungsoptionen verwenden, die für den For-Schleifen-Container festgelegt werden. Um die übergeordneten Protokollierungsoptionen zu verwenden, legen Sie die LoggingMode-Eigenschaft des Containers auf UseParentSetting fest. Sie können diese Eigenschaft im Fenster Eigenschaften von Business Intelligence Development Studio oder im Dialogfeld SSIS-Protokolle konfigurieren in SSIS-Designer festlegen.

Protokollierungsvorlagen

Im Dialogfeld SSIS-Protokolle konfigurieren können Sie auch häufig verwendete Protokollierungskonfigurationen als Vorlagen erstellen und speichern und die Vorlagen dann in mehreren Paketen verwenden. So ist es einfach, eine konsequente Protokollierungsstrategie für mehrere Pakete anzuwenden und Protokolleinstellungen für Pakete zu ändern, indem die Vorlagen aktualisiert und dann angewendet werden. Die Vorlagen werden als XML-Dateien gespeichert.

So konfigurieren Sie die Protokollierung im Dialogfeld "SSIS-Protokolle konfigurieren"

  1. Aktivieren Sie das Paket und seine Tasks für die Protokollierung. Die Protokollierung kann auf Paket-, Container- und Taskebene stattfinden. Sie können verschiedene Protokolle für Pakete, Container und Tasks angeben.

  2. Wählen Sie einen Protokollanbieter aus, und fügen Sie ein Protokoll für das Paket hinzu. Protokolle können nur auf Paketebene erstellt werden, und ein Task oder Container muss eines der für das Paket erstellten Protokolle verwenden. Jedes Protokoll ist einem der folgenden Protokollanbieter zugeordnet: Textdatei, SQL Server Profiler, SQL Server, Windows-Ereignisprotokoll oder XML-Datei. Weitere Informationen finden Sie unter Vorgehensweise: Aktivieren der Protokollierung in einem Paket.

  3. Wählen Sie die Ereignisse und die Protokollschemainformationen zu jedem Ereignis aus, das Sie im Protokoll erfassen möchten. Weitere Informationen finden Sie unter Vorgehensweise: Konfigurieren der Protokollierung in einem Container.

So zeigen Sie Protokolleinträge während der Paketentwicklung an

Siehe auch

Konzepte

SQL Server Integration Services-Protokollanbieter

Andere Ressourcen

Erstellen von Paketen im SSIS-Designer

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

15. September 2007

Neuer Inhalt:
  • Es wurde eine Tabelle hinzugefügt, in der die Elemente im Protokollschema beschrieben sind, die nicht auf der Registerkarte Details angezeigt werden.

05. Dezember 2005

Neuer Inhalt:
  • Informationen zu Protokollschemas und benutzerdefinierten Meldungen für Protokolleinträge wurden hinzugefügt.
  • Unterscheidung zwischen verschiedenen Paketkopien wurde verdeutlicht.
Geänderter Inhalt:
  • Beschreibung der Protokollierung auf Paketebene im Vergleich zur Protokollierung einzelner Objekte wurde erweitert.