FIX: 的日志读取器代理程序可能会导致 17883 错误消息

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 867878
本文已归档。它按“原样”提供,并且不再更新。
错误 #: 471610 (SHILOH_BUGS)
Microsoft SQL Server 2000 修补程序分发作为一个可下载的文件。因为该修补程序是累积性的因此每个新版本包含的所有修补程序和所有安全修复程序以前 SQL Server 2000 中包含的修补都程序版本。
症状
日志读取器代理程序可能会导致 17883 错误消息。这些 17883 错误消息可能会导致您的实例的 SQL Server 停止响应:
错误: 17883 严重性: 1,状态: 0
服务器进程 162:0 (0) 使 UMS 上下文 0x11DE8B68 似乎并进行无-生成计划 1 上。
若要确定是否发生此问题,查看 $ IsXactStartValid 函数生成的 17883 错误信息,然后搜索的小型转储文件。如果您发现 IsXactStartValid 函数,进行比较,日志读取器导致错误的因素线程堆栈的"更多信息"一节中所述堆栈小型转储文件中。如果将匹配在堆栈,发生此问题。
解决方案

服务包信息

若要解决此问题,获得最新的 service pack,对于 Microsoft SQL Server 2000。有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
290211如何获取最新的 SQL Server 2000 服务包

修补程序信息

此修补程序的英文版具有的文件属性 (或更新的文件属性) 在下表中列出。日期和时间对这些文件列出在协调世界时 (UTC)。当您查看文件信息时,将转换为本地时间。若要 UTC 与本地时间之间的时差使用控制面板中的日期和时间工具中的 时区 选项卡。
   Date         Time   Version            Size    File name   ----------------------------------------------------------------------   19-Jun-2004  00:51  2000.80.952.0     664,128  Autoplt.dll         19-Jun-2004  00:51  2000.80.952.0      78,400  Console.exe         19-Jun-2004  00:51  2000.80.952.0     315,968  Custtask.dll        19-Jun-2004  00:51  2000.80.952.0      33,340  Dbmslpcn.dll        08-Apr-2004  21:42                    786,432  Distmdl.ldf   08-Apr-2004  21:42                  2,359,296  Distmdl.mdf   10-Oct-2003  18:48                        180  Drop_repl_hotfix.sql   19-Jun-2004  00:51  2000.80.952.0   1,905,216  Dtspkg.dll          19-Jun-2004  00:52  2000.80.952.0     528,960  Dtspump.dll         19-Jun-2004  00:52  2000.80.952.0   1,557,052  Dtsui.dll           19-Jun-2004  00:52  2000.80.952.0     639,552  Dtswiz.dll          10-Oct-2003  18:48                    747,927  Instdist.sql   10-Oct-2003  18:48                      1,581  Inst_repl_hotfix.sql   19-Jun-2004  00:51  2000.80.952.0     352,828  Isqlw.exe           19-Jun-2004  00:51  2000.80.952.0      82,492  Itwiz.exe           19-Jun-2004  00:52  2000.80.952.0      90,692  Msgprox.dll         19-May-2004  23:43  8.11.40209.0      209,408  Mssdi98.dll         19-Jun-2004  00:52  2000.80.952.0      62,024  Odsole70.dll        19-Jun-2004  00:52  2000.80.952.0      25,144  Opends60.dll        19-Jun-2004  00:51  2000.80.952.0      57,904  Osql.exe            19-Jun-2004  00:52  2000.80.952.0     279,104  Pfutil80.dll        10-Oct-2003  18:37                    550,780  Procsyst.sql   08-Apr-2004  21:42                     12,305  Qfe469315.sql   08-Apr-2004  21:42                     19,195  Qfe469571.sql   15-Jun-2004  18:11                  1,105,167  Replmerg.sql   19-Jun-2004  00:52  2000.80.952.0     221,768  Replprov.dll        19-Jun-2004  00:52  2000.80.952.0     307,784  Replrec.dll         15-Jun-2004  15:43  2000.80.952.0     159,813  Replres.rll   10-Oct-2003  18:48                  1,087,150  Replsys.sql   10-Oct-2003  18:48                    986,603  Repltran.sql   19-Jun-2004  00:52  2000.80.952.0     287,304  Rinitcom.dll        19-Jun-2004  00:52  2000.80.952.0      78,416  Sdiclnt.dll         19-Jun-2004  00:52  2000.80.952.0      66,112  Semmap.dll          19-Jun-2004  00:52  2000.80.952.0      57,916  Semnt.dll           19-Jun-2004  00:52  2000.80.952.0     492,096  Semobj.dll          15-Jun-2004  16:18  2000.80.952.0     172,032  Semobj.rll   19-Jun-2004  00:51  2000.80.952.0      53,832  Snapshot.exe        12-Mar-2004  03:10                    117,834  Sp3_serv_uni.sql   19-Jun-2004  00:51  2000.80.952.0      28,672  Sqlagent.dll        19-Jun-2004  00:51  2000.80.952.0     311,872  Sqlagent.exe        19-Jun-2004  00:51  2000.80.952.0     168,001  Sqlakw32.dll        19-Jun-2004  00:52  2000.80.952.0      33,344  Sqlctr80.dll        19-Jun-2004  00:52  2000.80.952.0   4,215,360  Sqldmo.dll          19-Jun-2004  00:51                     25,172  Sqldumper.exe       15-Jun-2004  15:26  2000.80.952.0      28,672  Sqlevn70.rll   19-Jun-2004  00:52  2000.80.952.0     180,792  Sqlmap70.dll        19-Jun-2004  00:52  2000.80.952.0     188,992  Sqlmmc.dll          15-Jun-2004  16:25  2000.80.952.0     479,232  Sqlmmc.rll   19-Jun-2004  00:52  2000.80.952.0     401,984  Sqlqry.dll          19-Jun-2004  00:52  2000.80.952.0      57,920  Sqlrepss.dll        19-Jun-2004  00:52  2000.80.952.0   7,581,777  Sqlservr.exe        19-Jun-2004  00:52  2000.80.952.0     590,396  Sqlsort.dll         19-Jun-2004  00:52  2000.80.952.0      45,644  Sqlvdi.dll          19-Jun-2004  00:52  2000.80.952.0     106,588  Sqsrvres.dll        19-Jun-2004  00:52  2000.80.952.0      33,340  Ssmslpcn.dll        19-Jun-2004  00:52  2000.80.952.0      82,492  Ssnetlib.dll        19-Jun-2004  00:52  2000.80.952.0      25,148  Ssnmpn70.dll        19-Jun-2004  00:52  2000.80.952.0     123,456  Stardds.dll         19-Jun-2004  00:52  2000.80.952.0     158,240  Svrnetcn.dll        19-Jun-2004  00:51  2000.80.952.0      76,416  Svrnetcn.exe        19-Jun-2004  00:52  2000.80.952.0      53,808  Ums.dll             19-Jun-2004  00:52  2000.80.952.0      98,872  Xpweb70.dll      
注意由于存在文件依赖性最新的修补程序或功能,它包含这些文件可能还包含其他文件。

状态
Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的问题。 Microsoft SQL Server 2000 Service Pack 4 中,第一次已得到纠正此问题。
更多信息
此问题与时间相关和不可能总是发生。此问题不是很常见的。如果问题发生,日志读取器线程出现复制错误和是记录错误。 日志读取器线程可以记录该错误之前,必须产生另一个线程在线程已运行调度程序线程。当日志读取器线程产生调度程序时,线程持有名为 DBTABLE 内部 SQL Server 结构上的 spinlock 到。DBTABLE 结构至关重要的服务器操作。日志读取器线程产生后,已保存在 spinlock,日志读取器线程不能再运行一段时间。该时间可能取决于什么在该调度程序上的该时间在服务器上运行。 在此期间 SQL Server 中的没有其他线程可以访问 DBTABLE 结构和线程必须等待该 spinlock。当在 spinlock 的等待周期超过 60 秒时,触发 17883 错误消息。因为所有线程都进行旋转并等待 DBTABLE spinlock SQL Server 进程的 CPU 将是 100%。CPU 利用率可能会导致 SQL Server 停止响应的实例。

日志读取器线程堆栈如下所示:

SharedUserData!SystemCallStub+0x4ntdll!NtWaitForSingleObject+0xckernel32!WaitForSingleObjectEx+0xacums!UmsThreadScheduler::Switch+0x4cums!UmsScheduler::IdleLoop+0x105ums!UmsScheduler::Suspend+0x66ums!UmsEvent::Wait+0x8esqlservr!ExecutionContext::WaitForSignal+0x1aasqlservr!LatchBase::Suspend+0x16csqlservr!LatchBase::Acquire+0xaesqlservr!BUF::AcquireLatch+0x1fsqlservr!BPool::GetFromDisk+0x35asqlservr!bufget+0x278sqlservr!SDES::GetPage+0xb8sqlservr!LinkedPageSupplier::FirstPage+0x10csqlservr!LinkedPageSupplier::GetNextPage+0xd6sqlservr!SDES::GetBiDi+0x19csqlservr!CSysScan::FGetNext+0x7fsqlservr!wfindtext+0x24bsqlservr!ex_sprint+0x3fsqlservr!user_log+0x92sqlservr!IsXactStartValid+0xebsqlservr!ReplXactFinder::GetNextPendingXact+0x137sqlservr!repl_cmds_get_xacts+0x15fsqlservr!repl_cmds+0x140sqlservr!xp_replcmds+0x18asqlservr!CSpecProc::ExecuteSpecial+0x119sqlservr!CXProc::Execute+0xa3sqlservr!CSQLSource::Execute+0x3c0sqlservr!execrpc+0x507sqlservr!execute_rpc+0x19sqlservr!process_commands+0x232ums!ProcessWorkRequests+0x272ums!ThreadStartRoutine+0x98msvcrt!_threadstart+0x70kernel32!BaseThreadStart+0x34


是,在 spinlock 等待线程之一的堆栈如下所示:

sqlservr!SpinlockBase::SpinToAcquire+0x3asqlservr!FEqProtstamp+0x4dsqlservr!SecCache::_PsceLookupDbSecntxt+0x27sqlservr!SecCache::FValidScedb+0x10sqlservr!checkdbperm+0xd9sqlservr!usedb+0xdasqlservr!FDetermineSessionDb+0x66sqlservr!FRedoLogin+0x16csqlservr!ResetConnAndDtcXact+0xdcsqlservr!execrpc+0xadsqlservr!execute_rpc+0x19sqlservr!process_commands+0x232ums!ProcessWorkRequests+0x272ums!ThreadStartRoutine+0x98msvcrt!_threadstart+0x70kernel32!BaseThreadStart+0x34
17883 错误消息有关的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
319892新的并发性和日程排定方法添加到 SQL Server 诊断程序
有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
824684用于描述 Microsoft 软件更新的标准术语的说明

警告:本文已自动翻译

属性

文章 ID:867878 - 上次审阅时间:01/17/2015 10:59:38 - 修订版本: 2.3

Microsoft SQL Server 2000 Developer Edition, Microsoft SQL Server 2000 标准版, Microsoft SQL Server 2000 Enterprise Edition, Microsoft SQL Server 2000 Personal Edition, Microsoft SQL Server 2000 Workgroup Edition, Microsoft SQL Server 2000 Desktop Engine (Windows), Microsoft SQL Server 2000 Enterprise Edition 64-bit

  • kbnosurvey kbarchive kbmt kbsqlserv2000presp4fix kbfix kbbug kbhotfixserver kbqfe KB867878 KbMtzh
反馈