Best pratices for long(ish) running processes

  • Thread starter Thread starter BillAtWork
  • Start date Start date
B

BillAtWork

Hi,
I'm hoping to find best practices for implementing an asp.net process, for
many 1000's of users, that is mainly "waiting" for data from an external
service. Platform is c#, IIS, asp.net 3.5, sql server 2005. Note that
processing is mostly taken up waiting for the external web service - the
actual workload on our side is quite light.

The process that is called asynchronously from the browser for each user. It
may take around 10-40 seconds to complete. Note that the user's browser is
NOT tied up during this time and is not "waiting" for the results - they will
simply appear upon the user's next refresh of data.

Is IIS being "tied up" in any way while waiting for this external service? I
don't think this is about asynchronous calls since the only thing "waiting"
is IIS. The users are fine. I'm trying to ascertain what's going on when you
have 1000's of simultaneous processes, each waiting for something. Perhaps
it's not even an issue and it's just what IIS does for a living!

Thanks for any help!
 
BillAtWork said:
Hi,
I'm hoping to find best practices for implementing an asp.net process, for
many 1000's of users, that is mainly "waiting" for data from an external
service. Platform is c#, IIS, asp.net 3.5, sql server 2005. Note that
processing is mostly taken up waiting for the external web service - the
actual workload on our side is quite light.

The process that is called asynchronously from the browser for each user.
It
may take around 10-40 seconds to complete. Note that the user's browser is
NOT tied up during this time and is not "waiting" for the results - they
will
simply appear upon the user's next refresh of data.

Is IIS being "tied up" in any way while waiting for this external service?
I
don't think this is about asynchronous calls since the only thing
"waiting"
is IIS. The users are fine. I'm trying to ascertain what's going on when
you
have 1000's of simultaneous processes, each waiting for something. Perhaps
it's not even an issue and it's just what IIS does for a living!

Thanks for any help!

Yes, IIS is being affected by this due to the fact that the application the
Web service is using resources such as memory, threads and processing power
to service the long requests. This could be a problem for you if the Web
service and the ASP.NET UI front end applications are running on the same
server, in speed to service other Web request problems and possible memory
problems as well.

Long running requests should be off loaded to another server, whereas, the
Web service passes the requests off to another server taking the load of the
front-end Web server, if this is your situation.

This is one way to do it.

http://www.devx.com/asp/Article/21782/1954

Here is another way to do it by using SQL Server Service Broker. And I'll
tell you that you can queue up processes that have nothing to do with
database access.

http://msdn.microsoft.com/en-us/library/ms345108(SQL.90).aspx


Yet another way to do it is with Windows Workflow to take the load off the
front-end Web server passing the process off to another server in the
infrastructure.

http://blogs.msdn.com/kaevans/archi...ies-implemented-asynchronous-webrequests.aspx









__________ Information from ESET NOD32 Antivirus, version of virus signature
database 4501 (20091012) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com




__________ Information from ESET NOD32 Antivirus, version of virus signature database 4501 (20091012) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com
 
Back
Top