KB2735763 – FIX: Die Ausführung eines Pakets endet unerwartet und der Status lautet "Abgebrochen", wenn Sie viele SSIS 2012-Pakete parallel ausführen

Gilt für
SQL Server 2012 Enterprise

Microsoft stellt Microsoft SQL Server 2012-Fixes als eine herunterladbare Datei bereit. Da die Korrekturen kumulativ sind, enthält jede neue Version alle Hotfixes und Sicherheitsfixes, die in der vorherigen SQL Server 2012-Fixversion enthalten waren.

Symptome

Angenommen, Sie verwenden den SQL Server-Agent, um viele SSIS 2012-Pakete (SQL Server 2012 Integration Services) parallel auszuführen. Darüber hinaus ist das SSIS-Ereignis so konfiguriert, dass es in den SSISDB- oder MSDB-Tabellen protokolliert wird. In dieser Situation wird die Ausführung eines SSIS-Pakets unerwartet beendet und hat den Status "Abgebrochen". In diesem Fall werden keine Fehlermeldungen protokolliert. Beispielsweise endet eine lange Ausführung eines SSIS-Pakets, die 2 bis 3 Stunden dauert, unerwartet, hat den Status "Abgebrochen" und es werden keine Fehlermeldungen protokolliert.

Hinweis

  • Das erwartete Ergebnis ist, dass die Paketausführung erfolgreich sein sollte oder mit einigen Fehlern fehlschlägt. Darüber hinaus sollte der Status "Abgebrochen" nur für Paketausführungen angezeigt werden, die explizit beendet wurden.
  • Dieses Problem tritt mit größerer Wahrscheinlichkeit auf, wenn sich die SQL Server-Datenbankmodulinstanz, in der die SSIS-Ereignisse protokolliert werden, unter Stressbedingungen befindet. Zu den stressigen Bedingungen können Blockierungen, langsame Leistung oder Verzögerungen gehören, die durch das Wachstum der SSISDB-Datenbank verursacht werden.

Ursache

Das Problem tritt auf, weil bei der Ereignisprotokollierung eine Zeitüberschreitung auftritt. Dies führt dazu, dass die Ausführung des SSIS-Pakets vorzeitig abgebrochen wird.

Wenn ein SSIS-Ereignis so konfiguriert ist, dass es in den SSISDB- oder MSDB-Tabellen protokolliert wird, schreibt ein INSERT-Befehl das Protokoll und die Leistungsstatistiken intern in diese Tabellen. Wenn es viele parallele Ausführungen von SSIS-Paketen gibt, werden viele parallele Einfügebefehle ausgeführt. Daher ist das Auftreten des Zeitüberschreitungsfehlers wahrscheinlicher und verursacht das Problem, das im Abschnitt "Symptome" beschrieben wird.

Lösung

Nachdem Sie den Fix angewendet haben, wird die Zeitüberschreitung für den Befehl "Einfügen" von 30 Sekunden auf 120 Sekunden erhöht. Darüber hinaus wird die SSIS-Paketausführung nicht abgebrochen, wenn das Timeout nach einer Verzögerung von 120 Sekunden auftritt. Stattdessen werden die ausstehenden Protokollereignisse übersprungen, um Paketfehler zu vermeiden.

Informationen zum kumulativen Update

Kumulatives Updatepaket 3 für SQL Server 2012

Die Korrektur für dieses Problem wurde erstmals im kumulativen Update 3 veröffentlicht. Weitere Informationen zum Beziehen dieses kumulativen Updatepakets für SQL Server 2012 finden Sie im folgenden Artikel der Microsoft Knowledge Base:

2723749 Kumulatives Update 3 für SQL Server 2012Hinweis Da die Builds kumulativ sind, enthält jede neue Fixversion alle Hotfixes und Sicherheitsfixes, die in der vorherigen SQL Server 2012-Fixversion enthalten waren. Es wird empfohlen, die Anwendung des neuesten Fixrelease in Betracht zu ziehen, das diesen Hotfix enthält. Weitere Informationen finden Sie im folgenden Artikel der Microsoft Knowledge Base:

2692828 SQL Server 2012-Builds, die nach der Freigabe von SQL Server 2012 veröffentlicht wurden

Status

Microsoft hat bestätigt, dass dies ein Problem bei den Microsoft-Produkten ist, die im Abschnitt „Gilt für“ aufgeführt sind.

Problemumgehung

Wenden Sie eine der folgenden Methoden an, um dieses Problem zu umgehen:

  • Versuchen Sie, weniger SSIS-Pakete oder weniger Aufgaben parallel auszuführen.
  • Versuchen Sie, den Parameter für die Protokollierungsebene zu verringern, wenn Sie ein Paket aus Management Studio oder einem SQL Server-Agent-Auftrag ausführen. Wenn Sie beispielsweise die ausführliche Protokollierung verwenden, können Sie den Parameter für die Protokollierungsebene auf "Basic" oder "None" setzen. Wenn Sie die Protokollierungseinstellungen aus den SSIS-Paketeinstellungen im SQL Server Data Tools-Designer verwenden, können Sie die Ereignisse in einer Textdatei statt in den SSISDB- oder MSDB-Datenbanktabellen protokollieren.