[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

microsoft.public.dotnet.framework.aspnet.webservices

Way to automatically recycle aspnet_wp work process when close to 100% CPU for certain period of time?

Luther Miller

8/26/2003 5:19:00 PM

I have a server setup that is dedicate to providing a "proxy" by exposing a
web service that calls methods in a 3rd party ActiveX control and then
returns the results. Sometimes, the aspnet_wp work process seems to get
"hung" - it goes to close to 100% CPU and stays that way. Under these
circumstance, it appears that it is really the ActiveX control causing the
problem. Running IISRESET from the command line resolves the issue, for a
while, at least.

1) Is there a way to configure ASP.NET so that if the worker process is
detected at very high CPU (>80%) for longer than a certain period of time,
it will automatically recycle it?
2) I think it might be a threading issue. Is there an attribute I can set in
a Web Service, or in a configuration file, so that it will work better with
Active X controls?


2 Answers

John Viele

8/26/2003 8:47:00 PM

0

My $0.02 is below...

"Luther Miller" <luther@nowhere.invalid> wrote
-snip-

> 1) Is there a way to configure ASP.NET so that if the worker process is
> detected at very high CPU (>80%) for longer than a certain period of time,
> it will automatically recycle it?

Not a built-in way (at least that I've ever heard of), but you could
consider writing a windows service that kills it periodically. Probably not
the ideal approach.

> 2) I think it might be a threading issue. Is there an attribute I can set
in
> a Web Service, or in a configuration file, so that it will work better
with
> Active X controls?

If the problem is the ActiveX control itself, I'd advise just find another
component that does the job for you and stop using the one causing the
problem. I'm sure you thought of that, so if instead the problem IS being
cause by calling the control on multiple threads and possibly causing
concurrency errors, then simply wrap your calls to that component in a
function that uses a Mutex to prevent multiple threads from trying to use it
simultaneously. Mutex is, of course, explained in the MSDN help.

-jv


Luther Miller

8/27/2003 3:51:00 PM

0

Unfortunately I am stuck with the ActiveX control - it is for access to a
3rd party data provider, and there are no other options in this case.
Interestingly, I believe that the problem may be an STA vs. MTA issue.

I am suspicious that the control is designed for STA use. Web Services will
call COM components using MTA by default. There does not appear to be an
easy way to change this behavior (see
http://support.microsoft.com/default.aspx?scid=kb;en...).

However, it looks like I will have to find one...


"John Viele" <johnv@{NO_SPAM}goisc.com> wrote in message
news:uljMnMBbDHA.3444@tk2msftngp13.phx.gbl...
> My $0.02 is below...
>
> "Luther Miller" <luther@nowhere.invalid> wrote
> -snip-
>
> > 1) Is there a way to configure ASP.NET so that if the worker process is
> > detected at very high CPU (>80%) for longer than a certain period of
time,
> > it will automatically recycle it?
>
> Not a built-in way (at least that I've ever heard of), but you could
> consider writing a windows service that kills it periodically. Probably
not
> the ideal approach.
>
> > 2) I think it might be a threading issue. Is there an attribute I can
set
> in
> > a Web Service, or in a configuration file, so that it will work better
> with
> > Active X controls?
>
> If the problem is the ActiveX control itself, I'd advise just find another
> component that does the job for you and stop using the one causing the
> problem. I'm sure you thought of that, so if instead the problem IS being
> cause by calling the control on multiple threads and possibly causing
> concurrency errors, then simply wrap your calls to that component in a
> function that uses a Mutex to prevent multiple threads from trying to use
it
> simultaneously. Mutex is, of course, explained in the MSDN help.
>
> -jv
>
>