Come posso controllare lo stato del lavoro dal flusso di controllo SSIS?
-
09-06-2019 - |
Domanda
Ecco il mio scenario: ho un lavoro SSIS che dipende dall'esecuzione di un altro lavoro SSIS precedente.Devo poter controllare lo stato del primo lavoro prima di avviare il secondo.Non è possibile aggiungere il secondo lavoro al flusso di lavoro del primo, poiché è già troppo complesso.Voglio essere in grado di controllare lo stato del primo lavoro (Non riuscito, Riuscito, Attualmente in esecuzione) da quello del secondo e utilizzarlo come condizione per decidere se eseguire il secondo o attendere un nuovo tentativo.So che questo può essere fatto interrogando il database MSDB su SQL Server che esegue il lavoro.Mi chiedo se esiste un modo più semplice, ad esempio utilizzando l'attività di lettura dati WMI?Qualcuno ha avuto questa esperienza?
Soluzione
Potresti voler creare un terzo pacchetto che esegue il pacchetto A e poi il pacchetto B.Il terzo pacchetto conterrebbe solo due attività di esecuzione del pacchetto.
http://msdn.microsoft.com/en-us/library/ms137609.aspx
@Craig Una tabella di stato è un'opzione ma dovrai continuare a monitorarla.
Ecco un articolo sugli eventi in SSIS per la tua domanda originale.
http://www.databasejournal.com/features/mssql/article.php/3558006
Altri suggerimenti
Perché non usare un tavolo?Chiedi semplicemente al primo lavoro di aggiornare la tabella con il suo stato.Il secondo lavoro può utilizzare la tabella per verificare lo stato.Questo dovrebbe funzionare se leggo correttamente la domanda.La tabella dovrebbe (dovrebbe) avere solo una riga in modo da non compromettere le prestazioni e non dovrebbe causare alcun deadlock (ovviamente, ora che lo scrivo, accadrà) :)
@Jason:Sì, potresti monitorarlo o potresti fare in modo che un trigger avvii il secondo lavoro quando viene ricevuto lo stato finale.:)