ID do artigo: 2253391 - Última revisão: quarta-feira, 7 de julho de 2010 - Revisão: 1.0

A execução de um pacote do SSIS (SQL Server Integration Services) pára de responder quando você habilita transações do DTC para um pacote do Microsoft SQL Server

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Recolher tudo

Sintomas

Considere o seguinte cenário:
  • Criar um pacote do SSIS (SQL Server Integration Services) no Microsoft SQL Server 2005, no SQL Server 2008 ou no SQL Server 2008 R2.
  • Pacote do SSIS contém uma tarefa de fluxo de dados e algumas outras tarefas.
  • OTransactionOptionpropriedade do pacote do SSIS está definida comoObrigatóriopara usar as transações do DTC.
  • As outras tarefas são executados em uma transação do DTC antes da execução de tarefas de fluxo de dados.
  • Adicionar um componente para a tarefa de fluxo de dados.
  • OValidateExternalMetadatapropriedade de um componente de fluxo de dados é definida comoTrue.
  • A tarefa de fluxo de dados contém um componente de destino de banco de dados OLE que tem o modo de acesso de dados definido comoTabela ou modo de exibição, ou paraVariável de nome de nome ou o modo de exibição de tabela.
Ao executar o pacote nesse cenário, a execução pára de responder. Além disso, se você depurar o pacote do SSIS no Visual Studio, você receberá mensagens que ter o seguinte aspecto noProgressomodo de exibição:

"Package.dtsx" Iniciando o pacote de SSIS.
Informações: 0x4004300A na tarefa de fluxo de dados, DTS.Pipeline: é a fase de validação de início.
Informações: 0x4001100A no pacote: iniciando transação distribuída para este recipiente.
Informações: 0x4004300A na tarefa de fluxo de dados, DTS.Pipeline: é a fase de validação de início.

Causa

Esse problema ocorre porque a conexão de fluxo de dados não está inscrito na transação do DTC. Isso faz com que a execução do procedimento sp_cursoropen armazenado a ser bloqueado. Este é um recurso de design porque uma conexão não pode ser inscrita em uma transação do DTC durante o processo de validação. Na situação descrita na seção "Sintomas", o processo de validação de um componente de fluxo de dados é bloqueado quando você executa o pacote porque a conexão, a tarefa de fluxo de dados não foi registrada na transação do DTC.

Resolução

Para resolver esse problema, use um dos seguintes métodos:
  • DefinirValidateExternalMetadatapara todos os componentes na tarefa de fluxo de dados aFalso
  • Definir o modo de acesso de dados do componente de destino de banco de dados OLE a um dos seguintes modos:
    • Carregar a tabela ou modo de exibição ? rápido
    • Nome ou o modo de exibição de nome de variável de tabela ? o carregamento rápido
    • Comando SQL

Mais Informações

OTabela ou modo de exibiçãomodo de acesso de dados está bloqueado, mas outros modos de acesso a dados não são bloqueados porque os diferentes comandos emitidos pelo provedor de dados para cada modo de acesso de dados. Para obter mais detalhes sobre esse problema, use o SQL Server Profiler para ver os diferentes comandos emitidos pelo provedor de dados.

Para obter mais informações sobre como usar o SQL Server Profiler, visite o seguinte site da MSDN (Microsoft Developer Network):
Usando o SQL Server Profiler (http://msdn.microsoft.com/en-us/library/ms187929.aspx)

Para obter mais informações sobre como solucionar problemas de pacotes do SSIS, visite o seguinte site da MSDN (Microsoft Developer Network):
Desenvolvimento do pacote de solução de problemas (http://msdn.microsoft.com/en-us/library/ms137625(SQL.90).aspx)

A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Workgroup
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Workgroup
Palavras-chave: 
kbinfo kbexpertiseadvanced kbsurveynew kbmt KB2253391 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 2253391  (http://support.microsoft.com/kb/2253391/en-us/ )