Artigo: 330307 - Última revisão: quarta-feira, 5 de Setembro de 2007 - Revisão: 9.6

CORRECÇÃO: Entre a base de dados de consulta falha com o erro 3624 e ocorre uma declaração no ficheiro dbtable.cpp

Está disponível transferência de hotfixDisponível transferência de hotfix
Ver e solicitar transferências de hotfix
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.
Erro n.º: 362593 (Shiloh_bugs)
Expandir tudo | Reduzir tudo

Sintomas

Se executar uma consulta entre bases de dados, poderá ocorrer uma asserção de revenda e a instrução poderá não ser executado. Se executar uma consulta entre bases de dados no SQL Query Analyzer, a consulta falha e poderá receber a seguinte mensagem de erro:

Servidor: Erro 3624, nível de 20, estado 1, linha 1

Localização: dbtable.cpp:2608
Expressão: estado
SPID: 51
Processar ID: 2068

Ligação quebrada
Poderá ser apresentada a seguinte pilha abreviada no registo de erros do SQL Server:
* Short Stack Dump
* 0085CF85 Module(sqlservr+0045CF85) (CStackDump::GetContextAndDump+0000002E Line 1855+00000000)
* 0085EB58 Module(sqlservr+0045EB58) (stackTrace+00000216 Line 4139+00000000)
* 00919D41 Module(sqlservr+00519D41) (utassert_fail+000002E3 Line 452+00000010)
* 007F0D41 Module(sqlservr+003F0D41) (DBLockCache::ReleaseDBLock+000000C6 Line 2608+0000001B)
* 007F0ED9 Module(sqlservr+003F0ED9) (unlockdb+00000024 Line 2781+00000000)
* 0084C2CA Module(sqlservr+0044C2CA) (XdesRMReadOnly::~XdesRMReadOnly+00000075 Line 8233+0000000A)
* 0083F0C5 Module(sqlservr+0043F0C5) (ReadOnlyXactImp::Rollback+0000009B Line 853+0000000C)
* 0083EF94 Module(sqlservr+0043EF94) (ReadOnlyXactImp::Commit+00000030 Line 778+00000007)
* 004D3E68 Module(sqlservr+000D3E68) (CMsqlReadOnlyXact::Commit+0000000F Line 2719+00000000)
* 004D2C2B Module(sqlservr+000D2C2B) (CMsqlXact::Commit+0000009E Line 670+00000000)
* 004D3B16 Module(sqlservr+000D3B16) (CAutoMsqlXact::CommitNestedXact+00000062 Line 2154+00000000)
* 0048AACA Module(sqlservr+0008AACA) (CProchdr::FCompile+000011B6 Line 1300+00000000)
* 004A3C73 Module(sqlservr+000A3C73) (CSQLSource::FTransform+0000034C Line 885+00000012)
* 004A4AE8 Module(sqlservr+000A4AE8) (CSQLStrings::FTransform+000001A1 Line 1644+0000000A)
* 004A41D9 Module(sqlservr+000A41D9) (CSQLSource::Execute+0000015B Line 1136+0000000B)
* 0053A208 Module(sqlservr+0013A208) (language_exec+000003E1 Line 690+00000000)
* 0053B0B1 Module(sqlservr+0013B0B1) (process_commands+000000EC Line 1711+00000006)
* 41073379 Module(ums+00003379) (ProcessWorkRequests+0000024A)
* 41073071 Module(ums+00003071) (ThreadStartRoutine+000000BD)
* 7800C9EB Module(MSVCRT+0000C9EB) (beginthread+000000CE)
* 77E887DD Module(KERNEL32+000087DD) (GetModuleFileNameA+000001D1)
* -------------------------------------------------------------------------------
2002-10-17 11:23:26.49 spid51    SQL Server Assertion: File: <dbtable.cpp>, line=2608 
Failed Assertion = 'status'.
				
Quando o SQL Server tenta limpar a ligação que causou a asserção original, o erro é seguido de várias excepções e copia sintoma.

Causa

Para melhorar o desempenho e evitar excessivas operações de bloqueio, SQL Server 2000 coloca em bloqueios de base de dados para cada ligação. O tamanho da cache para armazenar os bloqueios de base de dados é corrigido. Se uma consulta cruzada bases de dados contém várias bloqueios de base de dados, os bloqueios de base de dados adicionais não são colocados em cache. No entanto, em alguns casos, quando a cache estiver disponível, os bloqueios de base de dados que não são colocados em cache primeiro podem ser colocados novamente na cache de novo. É o que provoca a asserção de revenda ocorrer.

Resolução

Nota A correcção seguinte foi criada antes da disponibilização do Microsoft SQL Server 2000 Service Pack 3.

Para resolver este problema, obtenha o service pack mais recente do SQL Server 2000. Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
290211  (http://support.microsoft.com/kb/290211/EN-US/ ) INF: How to Obtain the Latest SQL Server 2000 Service Pack
Está disponível a partir da Microsoft uma correcção suportada. No entanto, esta correcção destina-se a corrigir o problema descrito neste artigo. Aplique esta correcção apenas em sistemas que tenham este problema específico.

Se a correcção está disponível para transferência, existe uma secção "denominada transferência de correcção disponível" na parte superior deste artigo da base de dados de conhecimento. Se esta secção não for apresentada, submeta um pedido para o serviço de cliente do Microsoft e suporte para obter a correcção.

Nota Se ocorram problemas adicionais ou se for necessária qualquer resolução de problemas, poderá ter de criar um pedido de assistência separado. Os custos normais do suporte serão aplicados a problemas adicionais e questões de suporte que não se enquadrem esta correcção específica. Para obter uma lista completa dos números de telefone do suporte de cliente do Microsoft ou para criar um pedido serviço separado, visite o seguinte Web site da Microsoft:
http://support.microsoft.com/contactus/?ws=support (http://support.microsoft.com/contactus/?ws=support)
Nota O formulário "Transferência de correcção disponível" apresenta os idiomas para a qual a correcção está disponível. Se não vir o idioma, é porque uma correcção não está disponível para esse idioma.A versão inglesa desta correcção tem os atributos de ficheiro (ou posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são indicadas no formato de universal hora (UTC) coordenada Coordinated. Quando visualiza as informações do ficheiro, é convertido para a hora local. Para determinar a diferença entre a UTC e a hora local, utilize o separador fuso horário na ferramenta Data e hora no painel de controlo.
   Date         Time   Version        Size             File name
   ----------------------------------------------------------------
   08-Oct-2002  10:14  2000.80.690.0  7,467,089 bytes  Sqlservr.exe 
Nota Devido a dependências de ficheiros, a correcção mais recente ou funcionalidade que contém estes ficheiros pode também conter ficheiros adicionais.


Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados no início deste artigo.

Este problema foi corrigido pela primeira vez no SQL Server 2000 Service Pack 3.

Referências

Para obter mais informações sobre bloqueios de base de dados do SQL Server e bloquear, visite o seguinte Web site da Microsoft:
http://msdn2.microsoft.com/en-us/library/Aa178087(SQL.80).aspx (http://msdn2.microsoft.com/en-us/library/Aa178087(SQL.80).aspx)

A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 Standard Edition
Palavras-chave: 
kbmt kbautohotfix kbhotfixserver kbqfe kbsqlserv2000sp3fix kberrmsg kbdatabase kbsqlclient kbbug kbfix KB330307 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 330307  (http://support.microsoft.com/kb/330307/en-us/ )