Manipuladores de eventos do Integration Services

Em tempo de execução, os executáveis (pacotes e contêineres Loop Foreach, Loop For, de Seqüência e de host da tarefa) geram eventos. Por exemplo, um evento OnError será gerado quando acontecer um erro. Você pode criar manipuladores de eventos personalizados para esses eventos a fim de estender a funcionalidade do pacote e fazer com que os pacotes sejam mais fáceis de administrar em tempo de execução. Os manipuladores de eventos podem executar tarefas como:

  • Limpar o armazenamento de dados temporários quando um pacote ou tarefa termina de ser executado.

  • Recuperar informações de sistema para avaliar a disponibilidade de recursos antes da execução de um pacote.

  • Atualizar dados de uma tabela quando ocorrer falha na pesquisa em uma tabela de referências.

  • Enviar uma mensagem de email quando ocorrer erro, aviso ou falha em uma tarefa.

Quando um evento não tem um manipulador de eventos, o evento é gerado para o próximo contêiner superior na hierarquia de contêineres de um pacote. Se esse contêiner tiver um manipulador de eventos, este entrará em execução em resposta ao evento. Se não, o evento será gerado para o próximo contêiner superior na hierarquia de contêineres.

O diagrama a seguir mostra um pacote simples que tem um contêiner Loop For que contém uma tarefa Executar SQL.

Pacote, Loop For, host de tarefas e tarefa Executar SQL

Só o pacote tem um manipulador de eventos, para seu evento OnError. Se ocorrer um erro quando a tarefa Executar SQL for executada, o manipulador de eventos OnError do pacote entrará em execução. O diagrama a seguir mostra a seqüência de chamadas que faz o manipulador de eventos OnError do pacote executar.

Fluxo do manipulador de eventos

Manipuladores de eventos são membros de uma coleção de manipuladores de eventos e todos os contêineres incluem esta coleção. Se você criar o pacote usando o Designer SSIS, poderá ver os membros das coleções de manipuladores de eventos nas pastas Manipuladores de Eventos, na guia Explorador de Pacotes, do Designer SSIS.

Você pode configurar o contêiner de manipulador de eventos dos seguintes modos:

  • Especifique um nome e uma descrição para o manipulador de eventos.

  • Indique se o manipulador de eventos está em execução, se o pacote falha quando o manipulador de eventos falha e o número de erros que podem ocorrer antes de o manipulador de eventos falhar.

  • Especifique um resultado de execução a retornar no lugar do resultado da execução real que o manipulador de eventos retorna durante a execução.

  • Especifique a opção de transação do manipulador de eventos.

  • Especifique o modo de registro usado pelo manipulador de eventos.

Conteúdo do manipulador de eventos

Criar um manipulador de eventos é como criar um pacote; um manipulador de eventos possui tarefas e contêineres, que são colocados em seqüência em um fluxo de controle, e um manipulador de eventos também pode incluir fluxos de dados. O Designer SSIS inclui a guia Manipuladores de Eventos para a criação de manipuladores de eventos personalizados. Para obter mais informações, consulte Criando manipuladores de eventos de pacote.

Você também pode criar manipuladores de eventos programaticamente. Para obter mais informações, consulte Manipulando eventos programaticamente.

Eventos de tempo de execução

A tabela a seguir lista os manipuladores de eventos que o Integration Services fornece e descreve os eventos de tempo de execução que acionam a execução do manipulador de eventos.

Manipulador de eventos

Evento

OnError

Manipulador de eventos do evento OnError. Esse evento é gerado por um executável quando ocorre um erro.

OnExecStatusChanged

Manipulador de eventos do evento OnExecStatusChanged. Esse evento é gerado por um executável quando seu status de execução é alterado.

OnInformation

Manipulador de eventos do evento OnInformation. Esse evento é gerado durante a validação e execução de um executável para fornecer informações. Esse evento transmite apenas informações, nenhum erro ou avisos.

OnPostExecute

Manipulador de eventos do evento OnPostExecute. Esse evento é gerado por um executável logo depois que este termina de ser executado.

OnPostValidate

Manipulador de eventos do evento OnPostValidate. Esse evento é gerado por um executável quando sua validação é finalizada.

OnPreExecute

Manipulador de eventos do evento OnPreExecute. Esse evento é gerado por um executável imediatamente antes da sua execução.

OnPreValidate

Manipulador de eventos do evento OnPreValidate. Esse evento é gerado por um executável quando sua validação é iniciada.

OnProgress

Manipulador de eventos do evento OnProgress. Esse evento é gerado por um executável quando um progresso mensurável é feito pelo executável.

OnQueryCancel

Manipulador de eventos do evento OnQueryCancel. Esse evento é gerado por um executável para determinar se deve parar de ser executado.

OnTaskFailed

Manipulador de eventos do evento OnTaskFailed. Esse evento é gerado por uma tarefa quando ela falha.

OnVariableValueChanged

Manipulador de eventos do evento OnVariableValueChanged. Esse evento é gerado por um executável quando o valor de uma variável é alterado. O evento é gerado pelo executável no qual a variável está definida. Esse evento não será gerado se você definir a propriedade RaiseChangeEvent da variável como False. Para obter mais informações, consulte Variáveis do Integration Services.

OnWarning

Manipulador de eventos do evento OnWarning. Esse evento é gerado por um executável quando ocorre um aviso.

Configurando um Manipulador de Eventos

Você pode definir as propriedades na janela Propriedades do Business Intelligence Development Studio ou programaticamente.

Para obter mais informações sobre como definir estas propriedades no Business Intelligence Development Studio, consulte Como definir as propriedades de tarefas ou contêineres.

Configurar um manipulador de eventos programaticamente

Para obter mais informações sobre como definir programaticamente estas propriedades, consulte DtsEventHandler.

Ícone do Integration Services (pequeno) Fique atualizado com o Integration Services

Para obter os mais recentes downloads, artigos, exemplos e vídeos da Microsoft, bem como soluções selecionadas da comunidade, visite a página do Integration Services no MSDN ou TechNet:

Para receber uma notificação automática das atualizações, assine os feeds RSS disponíveis na página.