From time to time i get some memory dumps related to classic ASP. Last month I got some and the symptom was slow performance or event total hang with all requests just sitting around.
Typically when i´m looking at a classic ASP memory dump I like to use the extension that comes with DebugDiag called IISInfo.dll that helps me getting a nice view on requests executing. Below are the commands available with this extension (I won´t get into details but they are pretty much self explanatory).
In this specific case, after looking at requests executing all were getting struck on Xmlhttp send
The source code was showing that a XMLHTTP object was being created and then a request was made. So what was the problem about creating a XMLHTTP object ? Well, sending XMLHTTP requests from server is not supported and can lead to poor performance or even worse. Our solution was to use the SERVERXMLHTTP.
Below are some links of interest around XMLHTTP vs SERVERXMLHTTP.
“Active Server Pages (ASP) script or Internet Server API (ISAPI) code that attempts to use XMLHttpRequest (Microsoft.XMLHTTP) functionality of the Microsoft XML engine (MSXML) to send XML requests to another Web server may function incorrectly or perform poorly.”
http://support.microsoft.com/kb/237906/en-us (PRB: Loading Remote XML or Sending XML HTTP Requests from Server Is Not Supported)
“Using ServerXMLHTTP or WinHTTP objects to make recursive Hypertext Transfer Protocol (HTTP) requests to the same Internet Information Server (IIS) server is not recommended. More specifically, the calling Active Server Page (ASP) should not send requests to an ASP in the same virtual directory or to another virtual directory in the same pool or process. This can result in poor performance due to thread starvation.”
http://support.microsoft.com/default.aspx?scid=kb;EN-US;316451 (INFO: Do Not Send ServerXMLHTTP or WinHTTP Requests to the Same Server)
XMLHTTP and ServerXMLHTTP?
As the name suggests, ServerXMLHTTP is recommended for server applications and XMLHTTP is recommended for client applications. XMLHTTP has some advantages such as caching and auto-discovery of proxy settings support. It can be used on Windows 95 and Windows 98 platforms, and it is well-suited for single-user desktop applications.”
http://support.microsoft.com/kb/290761 (Frequently asked questions about ServerXMLHTTP)