Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

C# - Stress testing a Web Service - Timeout

Posted on 2007-11-19
7
Medium Priority
?
1,739 Views
Last Modified: 2013-11-07
Hi,

I have a web service that is query'ing a database. The query takes a few seconds to run.

I'm stress testing my web service using a couple of threads.

If the interval is too short between the threads that execute the web service, I get the following exception.

System.Web.Services.Protocols.SoapException: Server was unable to process request. ---> Error fetching *MyWebserviceMethods*.
   at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)

Any ideas why this is happening? I thought web services can handle some load.

Thank you.
0
Comment
Question by:Endelm
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 2
7 Comments
 
LVL 6

Expert Comment

by:ventaur
ID: 20312764
How are you calling the web service method?
0
 

Author Comment

by:Endelm
ID: 20313082
I'm using a while loop and 3 threads.

I execute the 3 threads at the same time.....then sleep for 1 sec.....then run the 3 threads again, etc.

If I set the threads to sleep for 5 or 10 seconds I don't get this error.

The execution of each web service call takes a few seconds.

Thank you.
0
 
LVL 6

Accepted Solution

by:
ventaur earned 2000 total points
ID: 20313183
I think you'll need to call the web service method asynchronously to avoid the problem.
private void MyMethodCompleted(Object sender, localhost.MyMethodCompletedEventArgs Completed) {
  // Do something once the web service method, "MyMethod", has completed.
}
 
...
 
// Create the web service and attach an event for the method's completion.
MyWebserviceMethods Service = new localhost.MyWebserviceMethods();
Service.MyMethodCompleted += new localhost.MyMethodCompletedEventHandler(MyMethodCompleted);
 
// Call the web service method asynchronously.
Service.MyMethodAsync();

Open in new window

0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 

Author Comment

by:Endelm
ID: 20315427
Interesting.

What does this do and how is it different from what I was doing?

Thank you! :)
0
 
LVL 6

Expert Comment

by:ventaur
ID: 20315532
If you call your web service method's xxxAsync version, it will automatically occur on its own thread; thus, preventing blocking. However, if you wish to perform any action(s) upon the completion of the method call, you have to subscribe to its xxxCompleted event.
0
 
LVL 1

Expert Comment

by:adam_ingeniti
ID: 20317984
So in other words, "asynchronous" means that each call to the web service will occur on its own thread, and thus should not interfere with each other.
0
 
LVL 6

Expert Comment

by:ventaur
ID: 20319692
You pretty much have it with that statement.
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Entity Framework is a powerful tool to help you interact with the DataBase but still doesn't help much when we have a Stored Procedure that returns more than one resultset. The solution takes some of out-of-the-box thinking; read on!
It was really hard time for me to get the understanding of Delegates in C#. I went through many websites and articles but I found them very clumsy. After going through those sites, I noted down the points in a easy way so here I am sharing that undeā€¦
This tutorial covers a step-by-step guide to install VisualVM launcher in eclipse.
THe viewer will learn how to use NetBeans IDE 8.0 for Windows to perform CRUD operations on a MySql database.

715 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question