Condividi tramite


Gestori eventi dei Servizi di Integrazione (SSIS)

In fase di esecuzione, i file eseguibili (pacchetti e Ciclo Foreach, Ciclo For, Sequenza e contenitori host attività) generano eventi. Ad esempio, un evento OnError viene generato quando si verifica un errore. È possibile creare gestori eventi personalizzati per questi eventi per estendere la funzionalità del pacchetto e semplificare la gestione dei pacchetti in fase di esecuzione. I gestori eventi possono eseguire attività come le seguenti:

  • Pulire l'archiviazione dati temporanea al termine dell'esecuzione di un pacchetto o di un'attività.

  • Recuperare le informazioni di sistema per valutare la disponibilità delle risorse prima dell'esecuzione di un pacchetto.

  • Aggiornare i dati in una tabella quando una ricerca in una tabella di riferimento ha esito negativo.

  • Inviare un messaggio di posta elettronica quando si verifica un errore o un avviso o quando un'attività non riesce.

Se un evento non dispone di un gestore eventi, l'evento viene inoltrato al contenitore successivo nella gerarchia di contenitori all'interno di un pacchetto. Se questo contenitore ha un gestore eventi, il gestore eventi viene eseguito in risposta all'evento. In caso contrario, l'evento viene generato nel contenitore successivo nella gerarchia dei contenitori.

Il diagramma seguente illustra un pacchetto semplice con un contenitore di Ciclo For che include un'attività di esecuzione SQL.

Pacchetto, Ciclo For, host attività ed attività Esegui SQL

Solo il pacchetto ha un gestore eventi per il relativo OnError evento. Quando si verifica un errore nell'esecuzione dell'attività Esegui SQL, viene eseguito il gestore eventi OnError per il pacchetto. Il diagramma seguente mostra la sequenza di chiamate che causa l'esecuzione del gestore eventi OnError per il pacchetto.

Flusso del gestore eventi

I gestori eventi sono membri di una raccolta di gestori eventi e tutti i contenitori includono questa raccolta. Se si crea il pacchetto usando Progettazione SSIS, è possibile visualizzare i membri degli insiemi di gestori eventi nelle cartelle Gestori eventi nella scheda Esplora pacchetti di Progettazione SSIS.

È possibile configurare il contenitore del gestore eventi nei modi seguenti:

  • Specificare un nome e una descrizione per il gestore eventi.

  • Indica se il gestore eventi viene eseguito, se il pacchetto ha esito negativo se il gestore eventi ha esito negativo e il numero di errori che possono verificarsi prima che il gestore eventi abbia esito negativo.

  • Specificare un risultato di esecuzione da restituire anziché il risultato effettivo dell'esecuzione restituito dal gestore eventi in fase di esecuzione.

  • Specificare l'opzione di transazione per il gestore eventi.

  • Specificare la modalità di registrazione usata dal gestore eventi.

Contenuto del gestore eventi

La creazione di un gestore eventi è simile alla creazione di un pacchetto; Un gestore eventi include attività e contenitori, che vengono sequenziati in un flusso di controllo e un gestore eventi può includere anche flussi di dati. Il Designer SSIS include la scheda Gestori eventi per la creazione di gestori eventi personalizzati. Per altre informazioni, vedere Gestori eventi del pacchetto SSIS.

È anche possibile creare gestori eventi a livello di codice. Per altre informazioni, vedere Gestione degli eventi a livello di codice.

Run-Time eventi

Nella tabella seguente sono elencati i gestori eventi forniti da Integration Services e vengono descritti gli eventi di runtime che causano l'esecuzione del gestore eventi.

Gestore eventi Evento
OnError Gestore eventi per l'evento OnError . Questo evento viene generato da un eseguibile quando si verifica un errore.
OnExecStatusChanged Gestore eventi per l'evento OnExecStatusChanged . Questo evento viene generato da un eseguibile quando lo stato di esecuzione cambia.
OnInformation Gestore eventi per l'evento OnInformation . Questo evento viene generato durante la convalida e l'esecuzione di un eseguibile per segnalare informazioni. Questo evento fornisce informazioni solo, senza errori o avvisi.
OnPostExecute Gestore eventi per l'evento OnPostExecute . Questo evento viene generato da un eseguibile immediatamente dopo il completamento dell'esecuzione.
OnPostValidate Gestore eventi per l'evento OnPostValidate. Questo evento viene generato da un eseguibile al termine della convalida.
OnPreExecute Gestore eventi per l'evento OnPreExecute . Questo evento viene generato da un eseguibile immediatamente prima dell'esecuzione.
OnPreValidate Gestore di eventi per OnPreValidate. Questo evento viene generato da un eseguibile all'avvio della convalida.
OnProgress Gestore eventi per l'evento OnProgress . Questo evento viene generato da un eseguibile quando viene compiuto un progresso misurabile.
OnQueryCancel Gestore eventi per l'evento OnQueryCancel . Questo evento viene generato da un eseguibile per determinare se debba interrompere l'esecuzione.
OnTaskFailed Gestore eventi per l'evento OnTaskFailed . Questo evento viene generato da un'attività quando ha esito negativo.
OnVariableValueChanged Gestore eventi per l'evento OnVariableValueChanged . Questo evento viene generato da un eseguibile quando il valore di una variabile cambia. L'evento viene generato dall'eseguibile in cui è definita la variabile. Questo evento non viene generato se si imposta la proprietà RaiseChangeEvent per la variabile su False. Per altre informazioni, vedere Variabili di Integration Services (SSIS).
OnWarning Gestore eventi per l'evento OnWarning . Questo evento viene generato da un eseguibile quando si verifica un avviso.

Configurazione di un gestore eventi

È possibile impostare le proprietà nella finestra Proprietà di SQL Server Data Tools (SSDT) o a livello di codice.

Per informazioni su come impostare queste proprietà in SQL Server Data Tools (SSDT), vedere Impostare le proprietà di un'attività o di un contenitore.

Per informazioni sull'impostazione a livello di codice di queste proprietà, vedere DtsEventHandler.

Per informazioni su come aggiungere un gestore eventi a un pacchetto, vedere Aggiungere un gestore eventi a un pacchetto.