Gestionnaires d'événements Integration Services (SSIS)

 

S'applique à: SQL Server 2016

Lors de l'exécution, les exécutables (packages, conteneurs de boucles Foreach, conteneurs de boucles For, conteneurs de séquences et conteneurs d'hôtes de tâches) déclenchent des événements. Par exemple, un événement OnError se déclenche lorsqu'une erreur se produit. Vous pouvez créer des gestionnaires d'événements personnalisés pour ces événements afin d'étendre les fonctionnalités des packages et les rendre plus faciles à gérer au moment de l'exécution. Les gestionnaires d'événements peuvent réaliser des tâches comme les suivantes :

  • nettoyer l'emplacement de stockage des données temporaires une fois l'exécution d'un package ou d'une tâche terminée ;

  • récupérer les informations système de manière à évaluer la disponibilité des ressources avant exécution d'un package ;

  • actualiser les données d'une table en cas d'échec d'une recherche dans une table de référence ;

  • envoyer un message électronique lorsqu'une erreur ou un avertissement se produit ou lorsqu'une tâche échoue.

Si un événement ne possède pas de gestionnaire d'événements, il est remonté au conteneur qui se trouve un niveau au-dessus dans la hiérarchie des conteneurs d'un package. Si ce conteneur possède un gestionnaire d'événements, ce dernier est exécuté en réponse à l'événement. Dans le cas contraire, l'événement est remonté au conteneur qui se trouve un niveau au-dessus dans la hiérarchie des conteneurs.

Le diagramme qui suit montre un package simple composé d'un conteneur de boucles For contenant une tâche d'exécution SQL.

Package, boucle For, hôte de tâche et tâche d'exécution SQL

Seul le package dispose d’un gestionnaire d’événements, pour son OnError événement. Si une erreur se produit lors de l’exécution de la tâche d’exécution de SQL, la OnError s’exécute le Gestionnaire d’événements pour le package. Le diagramme suivant illustre la séquence d’appels qui entraîne la OnError Gestionnaire d’événements pour le package à exécuter.

Flux de gestionnaire d'événements

Les gestionnaires d'événements sont membres d'une collection de gestionnaires d'événements. Tous les conteneurs incluent cette collection. Si vous créez le package à l’aide SSIS Designer, vous pouvez voir les membres des collections de gestionnaire d’événements dans la gestionnaires d’événements dossiers sur le Explorateur de Package onglet de SSIS Designer.

Vous pouvez configurer le conteneur du gestionnaire d'événements de plusieurs manières :

  • indiquez le nom et la description du gestionnaire d'événements ;

  • indiquez si le gestionnaire d'événements s'exécute, si le package échoue en cas d'échec du gestionnaire d'événements et indiquez le nombre d'erreurs autorisées avant échec du gestionnaire d'événements ;

  • spécifiez un résultat d'exécution à renvoyer à la place du résultat d'exécution réel renvoyé au moment de l'exécution par le gestionnaire d'événements ;

  • spécifiez l'option de transaction du gestionnaire d'événements ;

  • spécifiez le mode de journalisation utilisé par le gestionnaire d'événements.

La création d'un gestionnaire d'événements est similaire à la création d'un package. Un gestionnaire d'événements contient des tâches et des conteneurs qui sont mis en séquence de manière à former un flux de contrôle et peut inclure des flux de données. Le SSIS comporte la gestionnaires d’événements onglet pour la création de gestionnaires d’événements personnalisés.

Vous pouvez également créer des gestionnaires d'événements par programme. Pour plus d’informations, reportez-vous à la section de gestion des événements par programme.

Le tableau qui suit énumère les gestionnaires d'événements fournis par Integration Services et décrit les événements d'exécution provoquant leur exécution.

Gestionnaire d'événementsÉvénement
OnErrorLe Gestionnaire d’événements pour le OnError événement. Cet événement est déclenché par un exécutable lorsqu'une erreur se produit.
OnExecStatusChangedLe Gestionnaire d’événements pour le OnExecStatusChanged événement. Cet événement est déclenché par un exécutable lorsque son état d'exécution change.
OnInformationLe Gestionnaire d’événements pour le OnInformation événement. Cet événement se déclenche au cours de la validation et de l'exécution d'un exécutable afin de rapporter des informations. Cet événement véhicule des informations uniquement (aucune erreur ni avertissement).
OnPostExecuteLe Gestionnaire d’événements pour le OnPostExecute événement. Cet événement est déclenché par un exécutable immédiatement après la fin de son exécution.
OnPostValidateLe Gestionnaire d’événements pour le OnPostValidate événement. Cet événement est déclenché par un exécutable lorsque sa validation est terminée.
OnPreExecuteLe Gestionnaire d’événements pour le OnPreExecute événement. Cet événement est déclenché par un exécutable immédiatement avant son exécution.
OnPreValidateLe Gestionnaire d’événements pour le OnPreValidate événement. Cet événement est déclenché par un exécutable lorsque sa validation démarre.
OnProgressLe Gestionnaire d’événements pour le OnProgress événement. Cet événement est déclenché par un exécutable lorsqu'une progression mesurable est réalisée par l'exécutable.
OnQueryCancelLe Gestionnaire d’événements pour le OnQueryCancel événement. Cet événement est déclenché par un exécutable pour déterminer si son exécution doit s'arrêter.
OnTaskFailedLe Gestionnaire d’événements pour le OnTaskFailed événement. Cet événement est déclenché par une tâche lorsqu'elle échoue.
OnVariableValueChangedLe Gestionnaire d’événements pour le OnVariableValueChanged événement. Cet événement est déclenché par un exécutable lorsque la valeur d'une variable change. L'événement est déclenché par l'exécutable sur lequel la variable est définie. Cet événement n’est déclenché que si vous définissez la RaiseChangeEvent propriété pour la variable False. Pour plus d’informations, consultez Integration Services & #40 ; SSIS & #41 ; Variables.
OnWarningLe Gestionnaire d’événements pour le OnWarning événement. Cet événement est déclenché par un exécutable lorsqu'un avertissement se produit.

Vous pouvez définir les propriétés dans la fenêtre Propriétés de Outils de données SQL Server (SSDT) ou par programme.

Pour plus d’informations sur la façon de définir ces propriétés Outils de données SQL Server (SSDT), reportez-vous à la section définir les propriétés d’une tâche ou le conteneur.

Pour plus d’informations sur ces propriétés par programme, consultez DtsEventHandler.

Pour plus d’informations sur l’ajout d’un gestionnaire d’événements pour un package, consultez Ajouter un gestionnaire d’événements pour un Package.

Ajouts de la communauté

AJOUTER
Afficher: