Progress of a async webservice call

U

ullbergm

Is there any way to check the progress of a asynchronous webservice call?

I realize that you won't be able to check the data coming back but i was
curious if there was a way to check the bytes transfered or something like
that.

Thanks,
Magnus Ullberg
 
D

Dan Rogers

Hi Magnus,

When you say check the progress of an async web service, do you mean a fire
and forget one-way call, or a call you initiate on the client side using a
BeginXXMethod. I've heard people call both of thes "async" - but the
meaning of Async changes.

Without an interface on a service to check the progress of a prior request
(as opposed to a request that is still ongoing), a fire and forget request
- for example "send_me_goods_via_truck" to order some kind of e-commerce
product, the caller has no way to ask the question. Thus, progress and
status requests need to be designed into the service.

In the case of the "call it in the background so my client code isn't
frozen waiting for a long call to finish" - e.g. beginXXMethod approach,
no, there is no way to check on the progress. The reason is that while
there is an open connection between the proxy and service in this case, the
proxy is in "read" mode, and the service has already dispatched the
serialized data to the method. SOAP doesn't accommodate a status or
progress data stream on this request - as each request gets at most a
single on-connection response.

If your requests of the second type are taking a long time, you are going
to need to look into why the operations are taking a long time to process
on the server side. Any processing delay of more than a few milliseconds
may be a signal that the work-partitioning in the applicaiton design will
become an issue as the number of concurrent requests is ramped up.

Good luck to you

Dan Rogers
Microsoft Corporation
--------------------
 
U

ullbergm

Dan Rogers said:
Hi Magnus,

In the case of the "call it in the background so my client code isn't
frozen waiting for a long call to finish" - e.g. beginXXMethod approach,
no, there is no way to check on the progress. The reason is that while
there is an open connection between the proxy and service in this case, the
proxy is in "read" mode, and the service has already dispatched the
serialized data to the method. SOAP doesn't accommodate a status or
progress data stream on this request - as each request gets at most a
single on-connection response.

If your requests of the second type are taking a long time, you are going
to need to look into why the operations are taking a long time to process
on the server side. Any processing delay of more than a few milliseconds
may be a signal that the work-partitioning in the applicaiton design will
become an issue as the number of concurrent requests is ramped up.

Yes, i'm using a BeginXXX call. That's what i thought, but i figured i'd ask
in case there was something that i had missed.

The timing is due to low bandwidth on the client end and transfering a lot
of information.
Since i can't reduce the size of the data i may just break it up into
multiple small pieces so that i can give more feedback to the user.

Thanks for the quick response.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,230
Members
46,819
Latest member
masterdaster

Latest Threads

Top