KB2735763 - CORREÇÃO: A execução de um pacote termina inesperadamente e status é "Cancelada" quando você executa muitos pacotes SSIS 2012 em paralelo

Aplica-se a
SQL Server 2012 Enterprise

A Microsoft distribui correções do Microsoft SQL Server 2012 como um arquivo para download. Como as correções são cumulativas, cada nova versão contém todos os hotfixes e todas as correções de segurança incluídas na versão anterior de correções do SQL Server 2012.

Sintomas

Suponha que você use o SQL Server Agent para executar muitos pacotes do SQL Server 2012 Integration Services (SSIS 2012) em paralelo. Além disso, o evento SSIS é configurado para ser registrado nas tabelas SSISDB ou MSDB. Nessa situação, a execução de um pacote SSIS termina inesperadamente e tem um status "Cancelado". Quando isso ocorre, nenhuma mensagem de erro é registrada. Por exemplo, uma execução longa de um pacote SSIS que dura de 2 a 3 horas termina inesperadamente, tem um status "Cancelado" e não tem mensagens de erro registradas.

Observação

  • O resultado esperado é que a execução do pacote seja bem-sucedida ou falhe com alguns erros. Além disso, o status "Cancelado" deve aparecer somente para execuções de pacote que são explicitamente interrompidas.
  • É mais provável que esse problema ocorra quando a instância do Mecanismo de Banco de Dados do SQL Server na qual os eventos do SSIS são registrados está sob condições estressantes. As condições estressantes podem incluir bloqueio, desempenho lento ou atrasos causados pelo crescimento do banco de dados SSISDB.

Causa

O problema ocorre porque o log de eventos atinge o tempo limite. Isso faz com que a execução do pacote SSIS seja cancelada prematuramente.

Quando um evento SSIS é configurado para ser registrado nas tabelas SSISDB ou MSDB, um comando Insert grava o evento de log e as estatísticas de desempenho nessas tabelas internamente. Quando há muitas execuções paralelas de pacotes SSIS, muitos comandos de inserção paralelos são executados. Portanto, é mais provável que o erro de tempo limite ocorra e cause o problema descrito na seção "Sintomas".

Resolução

Depois de aplicar a correção, o tempo limite para o comando Inserir é aumentado de 30 segundos para 120 segundos. Além disso, se o tempo limite ocorrer após um atraso de 120 segundos, a execução do pacote SSIS não será cancelada. Em vez disso, os eventos de log pendentes são ignorados para evitar falhas de pacote.

Informações sobre a atualização cumulativa

Pacote de atualização cumulativa 3 para o SQL Server 2012

A correção para esse problema foi lançada pela primeira vez na Atualização Cumulativa 3. Para obter mais informações sobre como obter este pacote de atualização cumulativa para o SQL Server 2012, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento Microsoft:

2723749 Atualização cumulativa 3 para SQL Server 2012Observação: como os builds são cumulativos, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança incluídas na versão de correção anterior SQL Server 2012. Recomendamos que você considere aplicar a versão de correção mais recente que contém esse hotfix. Para obter mais informações, clique no número abaixo para ler o artigo da Base de Dados de Conhecimento Microsoft:

2692828 As SQL Server builds de 2012 lançadas após o lançamento do SQL Server 2012

Status

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na seção "Aplica-se a".

Solução alternativa

Como solução alternativa para esse problema, use um dos seguintes métodos:

  • Tente executar menos pacotes SSIS ou menos tarefas em paralelo.
  • Tente diminuir o parâmetro Nível de Log ao executar um pacote do Management Studio ou de um trabalho do SQL Server Agent. Por exemplo, se você estiver usando o log detalhado, poderá definir o parâmetro Nível de Log como Básico ou Nenhum. Se estiver usando as configurações de Registro em log das configurações de pacote SSIS no designer do SQL Server Data Tools, você poderá registrar os eventos em um arquivo de texto em vez de nas tabelas de banco de dados SSISDB ou MSDB.