2008-09-02 6 views
3

Hier ist mein Szenario - Ich habe einen SSIS-Job, der von einem anderen vorherigen SSIS-Job abhängig ist. Ich muss in der Lage sein, den Status des ersten Jobs zu überprüfen, bevor ich den zweiten starte. Es ist nicht machbar, den zweiten Job in den Workflow des ersten zu integrieren, da dieser bereits viel zu komplex ist. Ich möchte in der Lage sein, den Status des ersten Jobs (fehlgeschlagen, erfolgreich, aktuell ausgeführt) von dem zweiten zu überprüfen und dies als eine Bedingung zu verwenden, um zu entscheiden, ob der zweite ausgeführt werden soll, oder auf einen erneuten Versuch zu warten. Ich weiß, dass dies durch Abfragen der MSDB-Datenbank auf dem SQL Server erfolgen kann, auf dem der Job ausgeführt wird. Ich frage mich, ob es einen einfacheren Weg gibt, wie zum Beispiel den WMI Data Reader Task zu verwenden? Hat jemand diese Erfahrung gemacht?Wie überprüfe ich den Jobstatus vom SSIS-Kontrollfluss?

Antwort

4

Sie möchten vielleicht ein drittes Paket erstellen, das runs packageA und dann packageB. Das dritte Paket würde nur zwei Paket-Ausführungsaufgaben enthalten.

http://msdn.microsoft.com/en-us/library/ms137609.aspx

@Craig Eine Statustabelle ist eine Option, aber Sie werden überwacht, es zu halten haben.

Hier ist ein Artikel über Ereignisse in SSIS für Ihre ursprüngliche Frage.
http://www.databasejournal.com/features/mssql/article.php/3558006

+0

Danke für die Links. Ich denke, meine beste Option wird sein, die Jobs zu einem Master-Job zu abstrahieren, der sie steuert. –

0

Warum nicht eine Tabelle verwenden? Lassen Sie den ersten Job die Tabelle mit ihrem Status aktualisieren. Der zweite Job kann die Tabelle verwenden, um den Status zu überprüfen. Das sollte ausreichen, wenn ich die Frage richtig lese. Die Tabelle würde (sollte) nur eine Zeile haben, damit es die Leistung nicht killt und kein Deadlock verursachen sollte (natürlich, jetzt, wo ich es schreibe, wird es passieren) :)

@Jason: Ja, du könnte es überwachen oder Sie könnten einen Trigger starten den zweiten Job, wenn der Endstatus empfangen wird. :)

Verwandte Themen