CORRECÇÃO: Recebe uma mensagem de erro quando o MS DTC para o SQL Server 2000 reutiliza um identificador de processo do servidor (SPID) para se inscrever em uma transação distribuída
Microsoft distribui correções do Microsoft SQL Server 2000 como um arquivo para download. Como as correções são cumulativas, cada versão nova contém todos os hotfixes e todas as correções de segurança que foram incluídas com o anterior SQL Server 2000 corrigir lançamento.
Ao coordenador de transações distribuídas (MS DTC) da Microsoft para o Microsoft SQL Server 2000 reutiliza um identificador de processo do servidor (SPID) para se inscrever em uma transação distribuída, você recebe uma mensagem de erro semelhante à seguinte:
Declaração do SQL Server: Arquivo: <"msqlxact.cpp">, linha = 1882 falha declaração = ' pss-> IsSingleThreaded () '.
Após receber essa mensagem de erro, o SQL Server registra diversas mensagens de erro que possuem o código de Erro 17883 no log de erro do SQL Server. Talvez você precise pare e reinicie o serviço do SQL Server.
Para obter uma lista de todos os lançado publicamente SQL Server 2000 Service Pack 3a hotfixes, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
Esse problema ocorre quando o SPID é usado para se inscrever em uma transação distribuída imediatamente após uma consulta paralela em execução no mesmo o SPID. Nesse caso, o estado interno do SPID está danificado pelo monitor de bloqueio interno do SQL Server ou por uma consulta a tabela master.dbo.sysprocesses quando a consulta paralela está sendo executada.
Por exemplo, a seqüência de eventos a seguir faz com que esse problema:
SQL Server cria um SPID para executar uma consulta SQL ou um procedimento armazenado SQL. O plano de execução da consulta SQL ou do SQL armazenado procedimento é paralelo.
O SQL Server bloqueio interno monitor reativado e executa uma verificação do estado de todos os SPIDs antes da consulta SQL ou o SQL armazenado o procedimento da etapa 1 termina.
A consulta SQL ou o SQL armazenado procedimento da etapa 1 terminar, e não está sendo executado o SPID em vários segmentos paralelos. A consulta SQL ou procedimento armazenado SQL marca o estado interno do SPID como único thread. No entanto, o monitor de bloqueio interno do SQL Server não concluiu a verificação do estado de todos os SPIDs.
O monitor de bloqueio interno do SQL Server termina a verificação do estado de todos os SPIDs. O monitor de bloqueio interno do SQL Server incorretamente altera o estado interno do SPID para NULL em vez de deixar o estado interno do SPID marcado como único thread.
O MS DTC faz uma solicitação para o SQL Server para se inscrever em uma transação distribuída. Reutiliza esta solicitação o SPID interno danificado mesmo estruturas da etapa 4. Porque o SPID está danificado, a inscrição de transação distribuída parece estar sendo executado em um SPID que é não único segmentado.
Antes do SQL Server concluir a inscrição na transação distribuída, verificações do SQL Server para verificar se o SPID é único segmento. A verificação falhar porque o estado interno do SPID está incorreto. Você receber a mensagem de erro mencionada na "Sintomas" seção.
Após a verificação falhar, a solicitação do MS DTC para SQL Server é encerrada. Alguns registradores de divisão e spinlocks no recursos internos do SQL Server não pode ser lançado corretamente.
Consultas futuras do SQL ou procedimentos armazenados SQL podem causar um ou mais agendadores do SQL Server pare de responder. Agendadores do SQL Server podem esperar a versão dos registradores de divisão e a spinlocks nos recursos do SQL Server internos órfãos.
SQL Server pode detectar que um agendador do SQL Server não está respondendo e pode registrar mensagens de erro que têm código de Erro 17883 no log de erro do SQL Server.
Após o SQL Server Agendador pára de responder, não poderá fazer logon no SQL Server. As consultas SQL que estão sendo executados também podem parar de responder. Talvez você precise interromper e reiniciar o MSSQLServer serviço.
Observação Essa seqüência de eventos requer que uma consulta paralela é seguida por uma inscrição de transação distribuída em SPID mesmo. O aplicativo cliente que executa a consulta paralela provavelmente não usa o pool de conexão. Isso ocorre porque qualquer chamada para o procedimento sp_resetconnection armazenados do pool de conexão redefine o estado interno da conexão. Redefinir o estado interno da conexão impede que esse problema.
Um hotfix suportado está disponível no Microsoft. No entanto, esse hotfix destina-se a corrigir o problema descrito neste artigo. Aplique-o somente aos sistemas que apresentarem esse problema específico.
Se o hotfix está disponível para download, há uma seção "Download de Hotfix disponível" na parte superior neste artigo da Base de dados de Conhecimento. Se esta seção não for exibido, envie uma solicitação para suporte e atendimento ao cliente Microsoft para obter o hotfix.
Observação Se ocorrerem problemas adicionais ou se qualquer solução de problemas é necessária, talvez você precise criar uma solicitação de serviço separada. Os custos normais de suporte serão aplicados a questões de suporte adicionais e problemas que não se qualificam para esse hotfix específico. Para obter uma lista completa de números de telefone de suporte e Atendimento Microsoft ou para criar uma solicitação de serviço separada, visite o seguinte site:
Observação O formulário "Download de Hotfix disponível" exibe os idiomas para os quais o hotfix está disponível. Se você não vir seu idioma, é porque um hotfix não está disponível para esse idioma.
Pré-requisitos
Microsoft SQL Server 2000 Service Pack 4 (SP4)
Para obter informações sobre como obter o SQL Server 2000 SP4, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
Como obter o SQL Server 2000 service pack mais recente
Informações sobre reinicialização
Não é necessário reiniciar o computador após aplicar esse hotfix.
Informações do registro
Não é necessário alterar o registro.
Informações sobre o arquivo de hotfix
Esse hotfix contém apenas os arquivos que são necessárias para corrigir os problemas que este artigo lista. Este hotfix pode não conter todos os arquivos que você deve ter para actualizar completamente um produto para a compilação mais recente.
A versão em inglês deste hotfix tem atributos de arquivo (ou atributos de arquivo posteriores) listados na tabela a seguir. As datas e horas desses arquivos são listadas na hora universal coordenada (UTC). Quando você exibe as informações do arquivo, ele é convertido para a hora local. Para encontrar a diferença entre o UTC e a hora local, use a guia fuso horário na ferramenta Data e hora no painel de controle.
SQL Server 2000 de 32 bits
Recolher esta tabelaExpandir esta tabela
Nome de arquivo
Versão do arquivo
Tamanho do arquivo
Data
Tempo
Plataforma
Dtsui.dll
2000.80.2171.0
1,593,344
04 De novembro de 2005
07: 10
x 86
Impprov.dll
2000.80.2171.0
102,400
04 De novembro de 2005
07: 10
x 86
Mssdi98.dll
8.11.50523.0
239,104
06-Jun-2005
22: 46
x 86
Ntwdblib.dll
2000.80.2171.0
290,816
04 De novembro de 2005
07: 10
x 86
Odsole70.dll
2000.80.2171.0
69.632
04 De novembro de 2005
07: 10
x 86
Osql.exe
2000.80.2039.0
57.344
04 De novembro de 2005
05: 13
x 86
Pfclnt80.dll
2000.80.2171.0
430,080
04 De novembro de 2005
07: 10
x 86
Procsyst.SQL
Não aplicável
552,068
17-Jun-2005
15: 00
Não aplicável
Replprov.dll
2000.80.2171.0
237,568
04 De novembro de 2005
07: 10
x 86
Semexec.dll
2000.80.2171.0
856,064
04 De novembro de 2005
07: 10
x 86
Sp4_serv_qfe.SQL
Não aplicável
18,810
17-Jun-2005
15: 00
Não aplicável
Spupdsvc.exe
6.1.22.5
22,752
04 De novembro de 2005
05: 14
x 86
Sqlagent.exe
2000.80.2171.0
323,584
04 De novembro de 2005
05: 27
x 86
Sqldiag.exe
2000.80.2171.0
118,784
04 De novembro de 2005
06: 09
x 86
Sqldmo.dll
2000.80.2171.0
4,362,240
04 De novembro de 2005
07: 10
x 86
SQLEVN70.rll
2000.80.2171.0
45,056
04 De novembro de 2005
07: 10
Não aplicável
Sqlfth75.dll
2000.80.2171.0
102,400
04 De novembro de 2005
05: 33
x 86
Sqlse.rll
1.1.1003.0
44,544
27 De setembro de 2005
05: 23
Não aplicável
Sqlservr.exe
2000.80.2171.0
9,158,656
04 De novembro de 2005
07: 10
x 86
Sqlsort.dll
2000.80.2171.0
589,824
04 De novembro de 2005
07: 10
x 86
Sqlstpcustomdll.dll
1.0.128.0
943,104
04 De novembro de 2005
05: 13
x 86
Sqlstpcustomdll.rll
Não aplicável
24,576
04 De novembro de 2005
05: 13
Não aplicável
Stardds.dll
2000.80.2171.0
176,128
04 De novembro de 2005
07: 10
x 86
Svrnetcn.dll
2000.80.2171.0
110,592
04 De novembro de 2005
07: 10
x 86
Tempcatsign.CDF
Não aplicável
1,429
04 De novembro de 2005
14: 57
Não aplicável
Ums.dll
2000.80.2171.0
35.328
04 De novembro de 2005
07: 10
x 86
Updatelauncher.exe
5.2.3790.1288
8,704
12 De outubro de 2005
00: 07
x 86
Versão do SQL Server 2000 64-bit
Recolher esta tabelaExpandir esta tabela
Nome de arquivo
Versão do arquivo
Tamanho do arquivo
Data
Tempo
Plataforma
Impprov.dll
2000.80.2171.0
244,736
04 De novembro de 2005
14: 16
IA-64
Mssdi98.dll
8.11.50523.0
758,784
04 De novembro de 2005
14: 16
IA-64
Odsole70.dll
2000.80.2171.0
150,528
04 De novembro de 2005
14: 16
IA-64
Pfclnt80.dll
2000.80.2171.0
1,187,840
04 De novembro de 2005
14: 16
IA-64
Replprov.dll
2000.80.2171.0
538,624
04 De novembro de 2005
14: 16
IA-64
Sqlagent.exe
2000.80.2171.0
1,061,376
04 De novembro de 2005
14: 16
IA-64
Sqldiag.exe
2000.80.2171.0
334,336
04 De novembro de 2005
14: 16
IA-64
Sqldmo.dll
2000.80.2171.0
4,362,240
04 De novembro de 2005
14: 16
x 86
SQLEVN70.rll
2000.80.2171.0
35.328
04 De novembro de 2005
14: 16
Não aplicável
Sqlfth75.dll
2000.80.2171.0
246,784
04 De novembro de 2005
14: 16
IA-64
Sqlservr.exe
2000.80.2171.0
24,921,600
04 De novembro de 2005
14: 16
IA-64
Sqlsort.dll
2000.80.2171.0
617,472
04 De novembro de 2005
14: 16
IA-64
Svrnetcn.dll
2000.80.2171.0
427,520
04 De novembro de 2005
14: 16
IA-64
Observação Devido às dependências do arquivo, o hotfix mais recente ou o recurso que contém esses arquivos também pode conter arquivos adicionais.
Para contornar este problema, use um dos seguintes métodos:
Desative o paralelismo para a instância do SQL Server, limitando o grau de paralelismo em um grau. Para fazer isso, use o exemplo de código a seguir.
sp_configure 'max degree of parallelism', 1
go
reconfigure with override
Observação Se o servidor tem vários processadores e consultas de custo alto que usa regularmente paralelismo, desativar o paralelismo pode ter um efeito adverso no desempenho de consultas.
Elimine o uso de transações distribuídas.
Observação Esse método não pode ser realista na maioria dos ambientes.
Você não pode usar a dica OPTION (MAXDOP 1) em relação a uma única consulta para resolver esse problema. Para contornar este problema dessa maneira, você teria que usar essa dica contra todas as consultas ad hoc e contra todos os procedimentos armazenados. Esse método não pode ser realista na maioria dos ambientes.
Para obter mais informações sobre o esquema para nomeação para atualizações do SQL Server, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
Novo esquema para nomeação para pacotes de atualização de software do Microsoft SQL Server
Para obter mais informações sobre a terminologia usada pela Microsoft quando a Microsoft corrige o software após ele é liberado, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
Descrição da terminologia padrão que é usada para descrever as atualizações de software
Para obter mais informações sobre paralelismo, consulte o tópico "grau máximo de paralelismo opção" nos manuais online do SQL Server ou visite a seguinte site da Microsoft Developer Network (MSDN):
Para obter mais informações sobre transações distribuídas, consulte o tópico "Transações distribuídas" nos manuais online do SQL Server ou visite o seguinte site da MSDN:
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: 908156
Quanto esforço foi necessário para seguir os procedimentos deste artigo?
Muito baixo
Baixo
Moderado
Alto
Muito alto
Diga-nos o porque e o que podemos fazer para melhorar esta informação
Obrigado! Seus comentários são usados para nos ajudar a aperfeiçoar o conteúdo de suporte. Para obter mais opções de ajuda, visite a Home Page de Ajuda e Suporte.