Consider the following scenario in Windows XP Service Pack 3 (SP3), Windows Vista or Windows Server 2008:

  • You are running an XML-based application that uses Microsoft Core XML Services (MSXML) 6.0.
  • The application is multithreaded.
  • The application uses a FreeThreadedDOMDocument object in MSXML 6.0 to load an XML file in the main thread.
  • The application creates multiple child threads that access the FreeThreadedDOMDocument object.
  • These threads call the SelectSingleNode method at the same time.

When this issue occurs, the memory allocated by MSXML 6.0 increases rapidly. Eventually, the application cannot create new child threads. Or, the application crashes and then you receive an “out of memory” error message.

Leave a Reply