Warum wird nicht mein Versagen Strömung initiieren, wenn SSIS-Sequenz-container nicht?
Habe ich einige SSIS-Sequenz-Container, und wenn eine der Aufgaben Ihnen scheitern möchte ich direkt den Fluss, um ein SQL task, der reinigt alles, so kann ich das Problem beheben und starten Sie es erneut, ohne doppelte Daten. Mein problem ist, dass ich kann nicht den Fluss gerichtet, in die SQL-Aufgabe, auch wenn Sie etwas in einer der Sequenz-Containern scheitert. Scheint, wie sollte dies das Standardverhalten ist, aber es muss irgendeine Einstellung, die ich bin mising. Ich spielte mit der Einstellung FailParentOnFailure, aber all dies tut, ist, Stoppt der rest des Pakets ausgeführt werden. Ich würde ein Bild einfügen, um zu helfen zu verstehen, was ich eingerichtet habe, aber denke mal, mein Ruf ist nicht gut genug. 😛
- Sie können immer einen link zu einem externen host wie twitpic oder einem anderen Anbieter wie, die. Ansonsten, beschreiben, wie Sie versuchen, die Fehlerbehandlung über das hantieren mit den FailParentOnFailure Einstellung.
- Im Grunde alles, was ich habe, ist ein paar Daten fließen Aufgaben in einer Sequenz-container. Wenn alle diese Daten fließen Aufgaben scheitern (wenn sagen Sie den text-Datei, die ich versuche zu laden, um die Datenbank nicht verfügbar ist), dann möchte ich die Sequenz-container, dann Folgen Sie den "Fehler" precedence constraint anstelle der 'Erfolg' ein. Aber anstatt das zu tun, entweder es ist einfach nur geil, das gesamte Paket. Wenn er folgt nicht den "Fehler" rangfolgeneinschränkung standardmäßig auf einen Fehler, dann verstehe ich nicht, was der Punkt, der mit einem Ausfall rangfolgeneinschränkung ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke dies ist definitiv ein Fall, wo ein Bild hätte geholfen andere Antwort auf meine Frage. Ich hatte 3 Sequenz-Containern alle wies auf die gleiche SQL-Aufgabe aus, wenn Sie versagt haben. Ich wollte den task " SQL ausführen, wenn einer der Sequenz-Containern hatte einen Fehler, so dass die Rangfolgeneinschränkungen gesetzt werden musste, um ein logisch ODER, sonst würde es nie ausführen, es sei denn alle 3 passiert ist, zu scheitern. Verändert es ODER und es funktionierte genau so, wie ich wollte.
Stellen Sie sicher, dass Sie klicken Sie auf Bearbeiten, auf die Zwänge, und ändern Sie den letzten Teil für Mehrere Einschränkungen zu ODER so, dass, wenn einer von Ihnen Sie nicht diese Aufgabe ausführen, sonst wird es warten, bis alle von Ihnen zu scheitern.
Überprüfen Sie die Sequenz-container FailPackageOnFailure-Eigenschaft, wenn=true, es wird nicht das Feuer "Fehler rangfolgeneinschränkung".
Ohne weitere details auf Ihrer Sequenz-Containern ist es schwer sicher zu sein, über das problem.
Ich würde versuchen, zu prüfen, die
Propagate
system-Variablen von Ihren Containern.Wann immer Sie eine Aufgabe, die fehlschlagen können und Sie nicht möchten, dass Ihre ganze Paket zu stoppen, stellen Sie sicher, führen Sie einen der folgenden Schritte aus:
Event Handlers
tun und etwas auf dieOnError
EreignisBehandlung von Ausfall oder
Propagate
System-Variable, die Aufgabe zuFalse
Ich würde ein paar screenshots, aber ich habe nicht genug rep für, die. Stattdessen lasse ich Ihnen einige links mit mehr Informationen zu diesem Thema:
Ähnlich zu deiner Frage: http://sqlserverselect.blogspot.com/2010/12/ssis-foreach-loop-container-continue-on.html
Ausführliche Informationen über die Propagierung des Ereignisses: http://simonworth.wordpress.com/2009/11/11/ssis-event-handler-variables-propagate/
propagate
system-variable, die auf jedes Sequenz-Container "OnError" - Veranstaltungen auf false. Das sollte stellen Sie Ihre Sequenz Behälter leiten Sie die Arbeitsabläufe, um die sql-task ohne Unterbrechung das ganze Paket.