DanielMason
DanielMason

Reputation: 772

IIS 5.0 Calling COM+ Objects from ASP scripts

Note: I couldn't decide whether this was more appropriate for Stack Overflow or Serverfault, so if you have some insight into that, let me know.

Background: Recently, my server (Windows 2000, MS SQL 2005, IIS 5.0, ASP Classic) experienced a spike in traffic to a specific set of ASP pages. This spike caused a massive drain on the processor, spiking it at 100% and causing all kinds of timeout problems for the visitors.

We've actually handled larger volumes in traffic than this without error. The problem seemed to be that the specific ASP scripts being called were using a huge amount of processor time. Using the Process Explorer from Sysinternals, I found that dllhost.exe was taking up all of the processor time. Looking at its threads, the culprit was calls to COMSVCS.DLL, which seems to be COM+ objects.

So, it seems like my ASP pages are calling COM+ objects and it's killing my processor.

Here's the question: How do I determine which parts of my ASP scripts are calling the COM+ objects, and how would I begin to improve performance from these parts? I have basically no background in Windows programming, so I am at a loss of how to begin.

Thanks for your help.

Upvotes: 1

Views: 615

Answers (2)

Eduardo Molteni
Eduardo Molteni

Reputation: 39413

For determining what objects are being called, look for

 <OBJECT ID=MyObject RUNAT=SERVER PROGID=MyDll.MyObject></OBJECT>

or

 set myObject = server.createobject("MyDll.MyObject")

inside your ASP pages.

Beware that this could be calling standard DLL (not COM+ objects). The method for instantiation is the same for both types.

If you want to know what COM+ processes are you running, check out the Component Services app.

alt text http://img38.imageshack.us/img38/5062/capturerm.png

Upvotes: 1

JohnFx
JohnFx

Reputation: 34909

Neither COM+ or DLLHOST are likely your problem, they are just the containers that the web site and COM objects are running in. The actual objects they are being "fed" are your issue and/or the ways/frequency they are being called by the web app.

A more productive way to isolate the problem would be to look at the IIS logs for the pages with the longest processing time and have a programmer analyze what is going on in that page and what objects are being called.

Specifically, check the "time-taken" column in the IIS log.

Upvotes: 3

Related Questions