FIX: OPENXML May Leak Worktables in Memory

This article was previously published under Q295053
This article has been archived. It is offered "as is" and will no longer be updated.
BUG #: 351736 (SHILOH_BUGS)
When you use OPENXML to expose XML data directly to Transact-SQL manipulation, the following error message may appear in your application error log:
clean_tables_xact: active sdes for tabid -170425569
This regression bug was first seen in Build 6805. The use of the Msxml.dll file version 2.6 with hotfixes for Build 6805 do not dereference SQLOLEDB calls from IRowset to MSXML.
To resolve this problem, obtain the latest service pack for SQL Server 2000. For additional information, click the following article number to view the article in theMicrosoft Knowledge Base:
290211 INF: How to Obtain the Latest SQL Server 2000 Service Pack
Use the version of the Msxml2.dll file provided with SQL Server to prevent the memory leak.
Microsoft has confirmed that this is a problem in SQL Server 2000. This problem was first corrected in SQL Server 2000 Service Pack 1.

Step to Reproduce Behavior

  1. Run the following script from the SQL Query Analyzer:
    declare @strDoc nvarchar(2000)set @strDoc = '<!DOCTYPE root [ <!ELEMENT root (row)*> <!ELEMENT row (subrow)*> <!ELEMENT subrow EMPTY><!ATTLIST row dd CDATA #FIXED "dd value">]><root><row dd="dd value"/><row></row></root>'declare @h intexec sp_xml_preparedocument @h output, @strDocselect * from openxml(@h,'root/row',9) with (rid int '@mp:id',rparent int '@mp:parentid', dd char(10), xmltext ntext '@mp:xmltext')exec sp_xml_removedocument @h					
  2. Close the connection.
  3. Check the SQL Server error log.

Article ID: 295053 - Last Review: 02/28/2014 04:27:17 - Revision: 3.2

  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft XML Parser 2.6
  • kbnosurvey kbarchive kbbug kbfix kbmsxmlnosweep kbsqlserv2000sp1fix KB295053