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

Aplica-se A
SQL Server 2012 Enterprise

A Microsoft distribui as correções do Microsoft SQL Server 2012 como um ficheiro transferível. Como as correções são cumulativas, cada nova versão contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior SQL Server 2012 corrigir lançamento.

Sintomas

Suponha que você use SQL Server Agent para executar muitos pacotes do SQL Server 2012 Integration Services (SSIS 2012) em paralelo. Além disso, o evento SSIS está configurado para ser registado nas tabelas SSISDB ou MSDB. Nesta situação, a execução de um pacote SSIS termina inesperadamente e tem um estado "Cancelado". Quando isto ocorre, não são registadas mensagens de erro. Por exemplo, uma execução longa de um pacote SSIS que dure 2 a 3 horas termina inesperadamente, tem um estado "Cancelado" e não tem mensagens de erro registadas.

Nota

  • 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 apenas para execuções de pacotes que são explicitamente interrompidas.
  • É mais provável que este problema ocorra quando a instância SQL Server do Motor de Base de Dados na qual os eventos SSIS são registados se encontra em condições stressantes. 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 registo de eventos expira. Isto faz com que a execução do pacote SSIS seja cancelada prematuramente.

Quando um evento SSIS é configurado para ser registado nas tabelas SSISDB ou MSDB, um comando Insert escreve internamente o evento do registo e as estatísticas de desempenho nessas tabelas. Quando existem muitas execuções paralelas de pacotes SSIS, são executados muitos comandos Insert em paralelo. Portanto, o erro de tempo limite é mais provável de ocorrer e causar o problema descrito na seção "Sintomas".

Resolução

Depois de aplicar a correção, o tempo limite do 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 no pacote.

Informações de atualização cumulativa

Pacote de atualizações cumulativas 3 para SQL Server 2012

A correção para este problema foi lançada pela primeira vez na Atualização Cumulativa 3. Para obter mais informações sobre como obter esse 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 da Microsoft:

2723749 Atualização cumulativa 3 para SQL Server 2012Nota Como as compilações são cumulativas, cada nova versão de correção contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior SQL Server 2012 corrigir lançamento. Recomendamos que você considere aplicar o lançamento de correção mais recente que contém esse hotfix. Para mais informações, clique no número de artigo que se segue para ver o artigo na Base de Dados de Conhecimento Microsoft:

2692828 As compilações SQL Server 2012 lançadas após o lançamento do SQL Server 2012

Estado

A Microsoft confirmou que se trata de um problema nos produtos Microsoft listados na secção "Aplica-se a".

Solução

Para contornar o problema, utilize um dos métodos seguintes:

  • Tente executar menos pacotes SSIS ou menos tarefas em paralelo.
  • Tente diminuir o parâmetro Logging Level ao executar um pacote do Management Studio ou de um trabalho SQL Server Agent. Por exemplo, se estiver a utilizar o registo verboso, pode definir o parâmetro Nível de Registo como Básico ou Nenhum. Se estiver a utilizar as definições de Registo das definições do pacote SSIS no SQL Server Data Tools designer, pode registar os eventos num ficheiro de texto em vez de nas tabelas da base de dados SSISDB ou MSDB.