FIX: Crash in SQLXMLX Hangs Web Service Threads (291838)
The information in this article applies to:
- Microsoft Data Access Components 2.6
- Microsoft SQL Server 2000 Standard Edition
This article was previously published under Q291838 SYMPTOMS
When Command.Execute( , , adExecuteStream) is used to execute a statement with the Command.CommandStream object, and when the input stream is a SQL query that uses the XML template format and contains a large value for a <sql:param> parameter, an access violation (AV) may occur.
This occurs only with the MDAC 2.6 (2000.80.194.0) version of Sqlxmlx.dll.
CAUSE
While the statement is being copied into the stream buffer prior to sending it to the server, a function that processes parameter values attempts to copy twice as many bytes as necessary. When the parameter data resides close to the end of allocated memory, this can cause the copy request to run off the end of allocated memory, and an AV occurs.
RESOLUTION
To resolve this problem, obtain the latest service pack for Microsoft Data Access Components 2.6.
For customers who are unable to upgrade to the latest service pack, a supported fix is available from Microsoft, but it is only intended to correct the problem described in this article and should be applied only to systems experiencing this specific problem.
To obtain the fix, contact Microsoft Product Support Services. For a complete list of Microsoft Product Support Services phone numbers and information about support costs, please go to the following address on the World Wide Web:
NOTE: In special cases, charges that are normally incurred for support calls may be canceled, if a Microsoft Support Professional determines that a specific update will resolve your problem. Normal support costs will apply to additional support questions and issues that do not qualify for the specific update in question.
The English version of this fix should have the following file attributes or later:
Date Version Size File name
-------------------------------------------------------------
06-MAR-2001 2000.80.264.0 188,492 bytes Sqlxmlx.dll
06-MAR-2001 2000.80.264.0 24,576 bytes Sqlxmlx.rll
WORKAROUND
If possible, keep the size of the parameters relatively small. Parameters no larger than approximately 50 characters are recommended.
STATUSMicrosoft has confirmed that this is a problem in the Microsoft products that are listed at the beginning of this article.
This problem was first corrected in Microsoft Data Access Components 2.6 Service Pack 1.MORE INFORMATION
The crash in Sqlxmlx.dll is a handled exception, so it may not be immediately obvious that this crash is occurring. It may be necessary to attach a debugger to the process to detect the crash.
However, this crash can lead to another condition which causes the executing thread in a Web server to go into an infinite loop. As more threads encounter this condition over time, server performance can be severely degraded.
Modification Type: | Minor | Last Reviewed: | 9/26/2005 |
---|
Keywords: | kbHotfixServer kbQFE kbprb kbQFE KB291838 |
---|
|