Warum wird mein Fehlerfluss nicht ausgelöst, wenn der SSIS-Sequenzcontainer fehlschlägt?

7

Ich habe einige SSIS-Sequenzcontainer, und wenn eine der darin enthaltenen Aufgaben fehlschlägt, möchte ich den Fluss zu einer SQL-Aufgabe leiten, die alles aufräumt, damit ich das Problem beheben und es ohne doppelte Daten erneut ausführen kann. Mein Problem ist, dass ich den Fluss nicht in die SQL-Aufgabe leiten kann, selbst wenn etwas in einem der Sequenzcontainer fehlschlägt. Scheint so, als ob dies das Standardverhalten sein sollte, aber es muss eine Einstellung geben, die ich vermisse. Ich habe mit der Einstellung FailParentOnFailure gespielt, aber das alles stoppt den Rest des Pakets. Ich würde ein Bild einfügen, um zu verstehen, was ich eingerichtet habe, aber denke, mein Ruf ist noch nicht gut genug. : P

    
BeachBum 26.11.2011, 00:00
quelle

4 Antworten

19

Ich denke in diesem Fall definitiv ein Fall, in dem ein Bild anderen geholfen hätte, meine Frage zu beantworten. Ich hatte 3 Sequenzcontainer, die alle auf den gleichen SQL-Task zeigten, wenn sie fehlschlugen. Ich wollte, dass die SQL-Task ausgeführt wird, wenn einer der Sequenzcontainer einen Fehler aufweist. Daher müssen die Rangfolgeneinschränkungen auf ein logisches ODER gesetzt werden, andernfalls würde sie niemals ausgeführt werden, wenn nicht alle 3 fehlgeschlagen sind. Es wurde in OR geändert und es funktionierte genau so, wie ich es wollte.

    
BeachBum 28.11.2011, 17:23
quelle
4

Stellen Sie sicher, dass Sie in den Integritätsbedingungen auf Bearbeiten klicken und den letzten Teil für mehrere Integritätsbedingungen in OR ändern, so dass bei einem Fehler die Task ausgeführt wird. Andernfalls wird auf den Fehler gewartet.

    
Ken 04.06.2012 17:48
quelle
2

Überprüfen Sie die Sequenzcontainereigenschaft, wenn FailPackageOnFailure = true, wird keine "failure precedence constraint" ausgelöst.

    
Indrajith 24.07.2014 13:43
quelle
1

Ohne weitere Details zu Ihren Sequenzcontainern ist es schwierig, sich über das Problem zu vergewissern.

Ich würde versuchen, die Systemvariable Propagate Ihrer Container zu überprüfen. Wenn Sie eine Aufgabe haben, die fehlschlagen kann und Sie nicht möchten, dass Ihr gesamtes Paket beendet wird, müssen Sie einen der folgenden Schritte ausführen:

  • Gehe zu Event Handlers und tue etwas am OnError event to Behandle den Fehler oder
  • Setzen Sie die Propagate Systemvariable dieser Aufgabe auf False

Ich würde ein paar Screenshots bereitstellen, aber dafür habe ich nicht genug Rep. Stattdessen hinterlasse ich Ihnen einige Links mit weiteren Informationen zu diesem Thema:

Ähnlich wie Ihre Frage: Ссылка

Detaillierte Informationen zur Ereignisausbreitung: Ссылка

    
cfrag 28.11.2011 10:32
quelle