By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
435,301 Members | 1,752 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 435,301 IT Pros & Developers. It's quick & easy.

Slow web service response times

P: n/a
I have an ASP.NET application that makes 12 different web service calls
from a single method call. Each of the web services themselves don't
do much more than run a small query (I've run the queries elsewhere and
they complete virtually instantaneously) on some database and return a
dataset. As it so happens, the 12 calls are split up between 4
different web services on the same server, and the web services
themselves are ASP.NET apps built in C#. Anyway, I know that each
individual call usually returns in less than 10 seconds (first call).
I encounter problems only when I try to call them one after another in
my application.

The code looks something like this:
// create proxy objects
WSa.WebService a = new WSa.WebService();
....
WSd.WebService d = new WSd.WebService();

// Fill up datasets with web service calls
DataSet ds1 = a.Call1();
DataSet ds2 = a.Call2();
....
DataSet ds7 = c.Call(1);
....
DataSet ds12 = d.Call3();

// Do other processing with data
....

The most time-consuming call returns a chunk of data on the order of
2.5MB in size, but most of the SOAP messages returned are less than
150k.

When I put some timing code in there, I found that it could take from
~124 seconds to ~1290 seconds for the same 12 calls to complete (they
returned the same data every time in my tests). The server hosting the
web services did not ever appear to be under heavy load (I did a remote
desktop to it and put up task manager to watch).

I have tried running them asynchronously, and the total response time
for all of the calls to return -- I need all the data returned before I
can proceed, so I have to wait for all End calls to finish anyway --
still varies greatly. The one thing I learned from the asynchronous
calls is that certain calls among the 12 are far more likely to take
much longer than others. In fact, they take much longer than they
normally would if I just called each of them separately rather than all
12 in sequence. I even wrote a test application with buttons to do
just that, and the total time it takes for me to click all 12 buttons
and get a response is always less than 2 minutes.

Why is there such a variation in response time? What can I do to get
these web service calls to run faster?

Dec 7 '06 #1
Share this Question
Share on Google+
1 Reply


P: n/a
Hi,
As a last option i think you should go for compression as you are saying in
some calls data returned is about 2.5mb.In web services you use soap
extension to compress soap messages/data.Google for soap extension/process
message/webservices/compression and i am sure yiu will get complete working
code for compression in web services.You can also use gzip.dll found in
system32 folder for compression.If still you are not able to work around then
let me.I will try to provide complete working code for compression in web
services.

Thanks and Regards,
manish bafna

"lowlyscrub" wrote:
I have an ASP.NET application that makes 12 different web service calls
from a single method call. Each of the web services themselves don't
do much more than run a small query (I've run the queries elsewhere and
they complete virtually instantaneously) on some database and return a
dataset. As it so happens, the 12 calls are split up between 4
different web services on the same server, and the web services
themselves are ASP.NET apps built in C#. Anyway, I know that each
individual call usually returns in less than 10 seconds (first call).
I encounter problems only when I try to call them one after another in
my application.

The code looks something like this:
// create proxy objects
WSa.WebService a = new WSa.WebService();
....
WSd.WebService d = new WSd.WebService();

// Fill up datasets with web service calls
DataSet ds1 = a.Call1();
DataSet ds2 = a.Call2();
....
DataSet ds7 = c.Call(1);
....
DataSet ds12 = d.Call3();

// Do other processing with data
....

The most time-consuming call returns a chunk of data on the order of
2.5MB in size, but most of the SOAP messages returned are less than
150k.

When I put some timing code in there, I found that it could take from
~124 seconds to ~1290 seconds for the same 12 calls to complete (they
returned the same data every time in my tests). The server hosting the
web services did not ever appear to be under heavy load (I did a remote
desktop to it and put up task manager to watch).

I have tried running them asynchronously, and the total response time
for all of the calls to return -- I need all the data returned before I
can proceed, so I have to wait for all End calls to finish anyway --
still varies greatly. The one thing I learned from the asynchronous
calls is that certain calls among the 12 are far more likely to take
much longer than others. In fact, they take much longer than they
normally would if I just called each of them separately rather than all
12 in sequence. I even wrote a test application with buttons to do
just that, and the total time it takes for me to click all 12 buttons
and get a response is always less than 2 minutes.

Why is there such a variation in response time? What can I do to get
these web service calls to run faster?

Dec 8 '06 #2

This discussion thread is closed

Replies have been disabled for this discussion.