Microsoft distributes Microsoft SQL Server 2000 fixes as one downloadable file. Because the fixes are cumulative, each new release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2000 fix release.
When Microsoft Distributed Transaction Coordinator (MS DTC)
for Microsoft SQL Server 2000 reuses a server process identifier (SPID) to
enlist in a distributed transaction, you receive an error message that is
similar to the following:
After you receive this error message, SQL Server logs several
error messages that have error code 17883 in the SQL Server error log. You may
have to stop and then restart the SQL Server service.
For a list of
all publicly released SQL Server 2000 post-Service Pack 3a hotfixes, click the
following article number to view the article in the Microsoft Knowledge
Base:
810185
(http://support.microsoft.com/kb/810185/
)
SQL Server 2000 hotfix update for SQL Server
2000 Service Pack 3 and 3a
This problem occurs when the SPID is used to enlist in a
distributed transaction immediately after a parallel query has finished running
on the same SPID. In this case, the internal state of the SPID is damaged by
the SQL Server internal deadlock monitor or by a query against the master.dbo.sysprocesses table when the parallel query is running.
For example,
the following sequence of events causes this problem:
SQL Server creates a SPID to run a SQL query or a SQL
stored procedure. The execution plan of the SQL query or of the SQL stored
procedure is parallel.
The SQL Server internal deadlock monitor wakes up and runs
a check of the state of all the SPIDs before the SQL query or the SQL stored
procedure from step 1 finishes.
The SQL query or the SQL stored procedure from step 1
finishes, and the SPID is no longer running on multiple parallel threads. The
SQL query or the SQL stored procedure marks the internal state of the SPID as
single threaded. However, the SQL Server internal deadlock monitor has not
finished the check of the state of all the SPIDs.
The SQL Server internal deadlock monitor finishes the check
of the state of all the SPIDs. The SQL Server internal deadlock monitor
incorrectly changes the internal state of the SPID to NULL instead of leaving
the internal state of the SPID marked as single threaded.
MS DTC makes a request to SQL Server to enlist in a
distributed transaction. This request reuses the same damaged internal SPID
structures from step 4. Because the SPID is damaged, the distributed
transaction enlistment appears to be running on a SPID that is not single
threaded.
Before SQL Server finishes the enlistment in the
distributed transaction, SQL Server checks to make sure that the SPID is single
threaded. The check fails because the internal state of the SPID is incorrect.
You receive the error message that is mentioned in the "Symptoms"
section.
After the check fails, the request from MS DTC to SQL
Server is ended. Some latches and spinlocks on internal SQL Server resources
may not be released correctly.
Future SQL queries or SQL stored procedures may cause one
or more SQL Server schedulers to stop responding. The SQL Server schedulers may
wait for the release of the latches and the spinlocks on the orphaned internal
SQL Server resources.
SQL Server may detect that one SQL Server scheduler is not
responding and may log error messages that have error code 17883 in the SQL
Server error log.
After the SQL Server scheduler stops responding, you may
not be able to log in to SQL Server. The SQL queries that are currently running
may also stop responding. You may have to stop and then restart the MSSQLServer
service.
Note This sequence of events requires that a parallel query is
followed by a distributed transaction enlistment on the same SPID. The client
application that runs the parallel query most likely does not use connection
pooling. This is because any call to the sp_resetconnection stored procedure from connection pooling resets the internal
state of the connection. Resetting the internal state of the connection
prevents this problem.
A supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing this specific problem.
If the hotfix is available for download, there is a "Hotfix download available" section at the top of this Knowledge Base article. If this section does not appear, submit a request to Microsoft Customer Service and Support to obtain the hotfix.
Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft Web site:
Note The "Hotfix download available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.
Prerequisites
Microsoft SQL Server 2000 Service Pack 4 (SP4)
For
information about how to obtain SQL Server 2000 SP4, click the following
article number to view the article in the Microsoft Knowledge Base:
290211
(http://support.microsoft.com/kb/290211/
)
How to obtain the latest SQL Server 2000 service pack
Restart information
You do not have to restart the computer after you apply this
hotfix.
Registry information
You do not have to change the registry.
Hotfix file information
This hotfix contains only those files that are required to correct
the issues that this article lists. This hotfix may not contain all the files
that you must have to fully update a product to the latest
build.
The English version of this hotfix has the file
attributes (or later file attributes) that are listed in the following table.
The dates and times for these files are listed in Coordinated Universal Time
(UTC). When you view the file information, it is converted to local time. To
find the difference between UTC and local time, use the Time
Zone tab in the Date and Time tool in Control Panel.
SQL Server 2000 32-bit versions
Collapse this tableExpand this table
File name
File version
File
size
Date
Time
Platform
Dtsui.dll
2000.80.2171.0
1,593,344
04-Nov-2005
07:10
x86
Impprov.dll
2000.80.2171.0
102,400
04-Nov-2005
07:10
x86
Mssdi98.dll
8.11.50523.0
239,104
06-Jun-2005
22:46
x86
Ntwdblib.dll
2000.80.2171.0
290,816
04-Nov-2005
07:10
x86
Odsole70.dll
2000.80.2171.0
69,632
04-Nov-2005
07:10
x86
Osql.exe
2000.80.2039.0
57,344
04-Nov-2005
05:13
x86
Pfclnt80.dll
2000.80.2171.0
430,080
04-Nov-2005
07:10
x86
Procsyst.sql
Not
Applicable
552,068
17-Jun-2005
00:15
Not
Applicable
Replprov.dll
2000.80.2171.0
237,568
04-Nov-2005
07:10
x86
Semexec.dll
2000.80.2171.0
856,064
04-Nov-2005
07:10
x86
Sp4_serv_qfe.sql
Not
Applicable
18,810
17-Jun-2005
00:15
Not
Applicable
Spupdsvc.exe
6.1.22.5
22,752
04-Nov-2005
05:14
x86
Sqlagent.exe
2000.80.2171.0
323,584
04-Nov-2005
05:27
x86
Sqldiag.exe
2000.80.2171.0
118,784
04-Nov-2005
06:09
x86
Sqldmo.dll
2000.80.2171.0
4,362,240
04-Nov-2005
07:10
x86
Sqlevn70.rll
2000.80.2171.0
45,056
04-Nov-2005
07:10
Not
Applicable
Sqlfth75.dll
2000.80.2171.0
102,400
04-Nov-2005
05:33
x86
Sqlse.rll
1.1.1003.0
44,544
27-Sep-2005
05:23
Not
Applicable
Sqlservr.exe
2000.80.2171.0
9,158,656
04-Nov-2005
07:10
x86
Sqlsort.dll
2000.80.2171.0
589,824
04-Nov-2005
07:10
x86
Sqlstpcustomdll.dll
1.0.128.0
943,104
04-Nov-2005
05:13
x86
Sqlstpcustomdll.rll
Not
Applicable
24,576
04-Nov-2005
05:13
Not
Applicable
Stardds.dll
2000.80.2171.0
176,128
04-Nov-2005
07:10
x86
Svrnetcn.dll
2000.80.2171.0
110,592
04-Nov-2005
07:10
x86
Tempcatsign.cdf
Not
Applicable
1,429
04-Nov-2005
14:57
Not
Applicable
Ums.dll
2000.80.2171.0
35,328
04-Nov-2005
07:10
x86
Updatelauncher.exe
5.2.3790.1288
8,704
12-Oct-2005
00:07
x86
SQL Server 2000 64-bit version
Collapse this tableExpand this table
File name
File version
File
size
Date
Time
Platform
Impprov.dll
2000.80.2171.0
244,736
04-Nov-2005
14:16
IA-64
Mssdi98.dll
8.11.50523.0
758,784
04-Nov-2005
14:16
IA-64
Odsole70.dll
2000.80.2171.0
150,528
04-Nov-2005
14:16
IA-64
Pfclnt80.dll
2000.80.2171.0
1,187,840
04-Nov-2005
14:16
IA-64
Replprov.dll
2000.80.2171.0
538,624
04-Nov-2005
14:16
IA-64
Sqlagent.exe
2000.80.2171.0
1,061,376
04-Nov-2005
14:16
IA-64
Sqldiag.exe
2000.80.2171.0
334,336
04-Nov-2005
14:16
IA-64
Sqldmo.dll
2000.80.2171.0
4,362,240
04-Nov-2005
14:16
x86
Sqlevn70.rll
2000.80.2171.0
35,328
04-Nov-2005
14:16
Not
Applicable
Sqlfth75.dll
2000.80.2171.0
246,784
04-Nov-2005
14:16
IA-64
Sqlservr.exe
2000.80.2171.0
24,921,600
04-Nov-2005
14:16
IA-64
Sqlsort.dll
2000.80.2171.0
617,472
04-Nov-2005
14:16
IA-64
Svrnetcn.dll
2000.80.2171.0
427,520
04-Nov-2005
14:16
IA-64
Note Because of file dependencies, the most recent hotfix or feature
that contains these files may also contain additional files.
To work around this problem, use one of the following
methods:
Disable parallelism for the instance of SQL Server by
limiting the degree of parallelism to one degree. To do this, use the following
code example.
sp_configure 'max degree of parallelism', 1
go
reconfigure with override
Note If the server has multiple processors and high-cost queries that
regularly use parallelism, disabling parallelism may have an adverse effect on
performance for those queries.
Eliminate the use of distributed transactions.
Note This method may not be realistic in most environments.
You cannot use the OPTION (MAXDOP 1) hint against a single query
to work around this problem. To work around this problem in this manner, you
would have to use this hint against all ad hoc queries and against all stored
procedures. This method may not be realistic in most
environments.
For more information about the
naming schema for SQL Server updates, click the following article number to
view the article in the Microsoft Knowledge Base:
822499
(http://support.microsoft.com/kb/822499/
)
New naming schema for Microsoft SQL Server software update
packages
For more information about the
terminology that Microsoft uses when Microsoft corrects software after it is
released, click the following article number to view the article in the
Microsoft Knowledge Base:
824684
(http://support.microsoft.com/kb/824684/
)
Description of the standard terminology that is used to describe
Microsoft software updates
For more information about parallelism, see the
"max degree of parallelism Option" topic in SQL Server Books Online, or visit
the following Microsoft Developer Network (MSDN) Web site:
For more information about distributed transactions, see the
"Distributed Transactions" topic in SQL Server Books Online, or visit the
following MSDN Web site: