472,139 Members | 1,687 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,139 software developers and data experts.

Slow web service response times

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
1 8893
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.

Similar topics

reply views Thread by dyw55a | last post: by
2 posts views Thread by Drew Stoddard | last post: by
4 posts views Thread by Vito DeCarlo | last post: by
2 posts views Thread by Sven Thorsen | last post: by
13 posts views Thread by rperreta | last post: by
5 posts views Thread by =?Utf-8?B?V2FubmFiZQ==?= | last post: by
9 posts views Thread by SAL | last post: by
reply views Thread by leo001 | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.