Compartilhar via


Os pontos de verificação do SSIS não são respeitados para itens de contêiner de loop For ou Foreach Loop

Este artigo ajuda você a contornar o problema em que os pontos de verificação do SQL Server Integration Services (SSIS) não são respeitados ou For Loop Foreach Loop itens de contêiner.

Versão original do produto: SQL Server
Número original do KB: 2624458

Sintomas

Considere o cenário a seguir.

  • Você instala o Microsoft SQL Server Integration Services em um computador.

  • Você cria um pacote SSIS que contém um item de Contêiner de Loop For que é seguido por um Contêiner de Sequência.

  • Os itens Contêiner de Loop For e Contêiner de Sequência têm um dos seguintes:

    • Uma tarefa Executar SQL (OR)
    • Duas ou mais tarefas de execução do SQL executadas em paralelo.
  • Você habilita a configuração Ponto de verificação para o pacote SSIS.

  • Você executa o pacote SSIS

  • O Contêiner de Loop For é concluído e a execução do pacote chega ao Contêiner de Sequência.

  • Você executa uma das ações abaixo:

    • Para pacotes com uma única Tarefa Executar SQL, você interrompe a execução do pacote enquanto a tarefa ainda está em execução.
    • Para pacotes que executam várias tarefas de execução de SQL, você interrompe a execução do pacote ou experimenta uma falha em uma dessas tarefas enquanto outras tarefas de execução de SQL ainda estão em execução
  • O pacote SSIS é executado novamente.

Nesse cenário, o Pacote é iniciado no For Loop Sequence Contêiner em vez do Contêiner.

Observação

Esse problema não está vinculado à Tarefa Executar SQL. Isso também pode ocorrer com outras tarefas.

Causa

Esse comportamento é por design. Os dados do ponto de verificação não são salvos para o contêiner e Foreach Loop os itens do For Loop contêiner. Se um contêiner filho no loop for executado com êxito, ele não será registrado no arquivo de ponto de verificação. Portanto, quando o pacote é reiniciado, as tarefas em cada um desses itens de contêiner são executadas novamente.

Solução alternativa

Para contornar o problema, envolva o For Loop ou o Foreach Loop contêiner dentro de um Sequence contêiner.