1

we are having issues with MSXML,

we have an app (developed in c plus plus as isapi extension (which means multithreaded requests)) which is continously hit by requests to loads and parse xmls. (if overloaded with lots of xml files to load and parse, it gives virtual memory issues with non responding state)

we are using MSXML4.0. The app works well for days and whenever there are high number of requests with huge xmls it goes in to non respoding state, which leads to restarting the app

I checked the memory counters and private bytes are not so high.. but virtual bytes are touching 2gb (on 32bit windows) which i think hitting upper limits so it is giving issues and i can see no more memory can be allocated (caught errors in exception handler for new operator)

Tried all following things to pull the virtual bytes down but none of them helped, virtual bytes are growing continuously to touch 2gb and eventually halts the app :(

  • replaced MSXML4.0 with MSXML6.0 (didnt help)
  • with MSXML6.0 used NOFULLGC registry set as 1 (didnt help)
  • Also tried CoFreeUnusedLibraries() before CoUninitialize() (didn't help)
  • read few articles saying use xmllite instead of msxml (won't be possible, will need huge efforts)

Any help in this regard will really be appreciated.

  • Build for 64-bit and get 64 OS? At least then you could keep the app up for long enough to find out whether you're leaking something or just suffering from a temporary overload. – Martin James Jun 15 '13 at 17:01
  • Thanks Martin, I already had that thought but I am keeping it as the last workaround. And as per my understanding (through lots of googling) its not leak but its a msxml feature of delayed freeing mechanism (garbage collection) I struggled a lot to pull the virtual memory down like calling explicit release on IXMLDomDocument2Ptr even if it's smart pointer. but all tries are in vain. Is there any way to disable the delayed freeing mechanism of msxml (garbage collection, note that setting UseFullGC=1 didn't work).. Anything else, anyone? – user2489213 Jun 17 '13 at 12:19
  • any thoughts, suggestions? – user2489213 Jun 19 '13 at 08:59
  • Can I use Web Garden, will it help? – user2489213 Jun 21 '13 at 14:57
  • @Martin, I tried hitting the requests after some seconds, but the graph is going up and up for virtual memory, its not anyways dropping by even little amount whatsoever.. I doubt the trouble is because of IXSLProcessorPtr->trasnform() method for huge xmls.. anyone has experience something like it, any idea? – user2489213 Jul 02 '13 at 05:03
  • Hello... can someone throw a light on it?? – user2489213 Jul 04 '13 at 14:12
  • Do you have some code to show? I used MSXML6 a lot for an appserver with a xml request interface and never ever had any memory issues except for large xml strings that took already 200MB – klaus triendl Aug 26 '13 at 19:26

0 Answers0