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

Web Service Client Connectivity

P: n/a
I have a situation, I was wondering if someone could help me. Wehave a .net web service, it runs several transactions in sqlserver 2000. We have several clients which connect to this webservice in order to run their transactions. If the client lossesconnectivity during the transaction, our web service transactioncompletes, but these believe they have a failure. Is thereanyway to check the client connectivity and rollback thetransaction if the clients connectivity has failed within thewebservice.

Thanks
Darren McDowell

-----------------------
Posted by a user from .NET 247 (http://www.dotnet247.com/)

<Id>0zpFQPnYmk6U/46yN9CBDg==</Id>
Nov 21 '05 #1
Share this Question
Share on Google+
1 Reply


P: n/a
use an asynch pattern on the server. The client sends a request to the
server, which accepts the request and enqueues it into a transactional
queue. If you like the service can wrap itself in a transaction (can do
this with attributes in .NET). The service responds to the client with a
request ID, maybe a UUID generated for that particular request. The
response from service to client indicates that the request was received and
will be processed at some point.

Asynchronously, a thread at the server-side de-queues the request from the
queue, performs "several transactions" in SQL2000, and then enqueues a
response status back into the queue, indexed on the same request id. This
thread can be part of the webservice but might also be part of SQL Server,
or of a Windowxs Service, or some other app. it could be local or remote.
these details don't matter for the purposes of this discussion.

At some later point (1 second later, 1 month later, whatever), the client
can send an Inquire() message to the webservice, passing the valid message
ID. The service can browse the queue and dequeue any status or result
messages corresponding to that message ID.

Regarding Rollback, it would seem to me that the client cannot really "roll
back" any transaction that it has not participated in as a resource manager.
The transaction in your case occurs strictly on the server. The client
requests the transaction, "causes" the transaction, but does not actually
participate in it. And so the client does not have rollback (or voting)
rights on the transaction in question. Regardless, once the transaction is
resolved one way or the other, either committed or aborted (rolled back), no
participant can change that result. But maybe you are talking about a
different meaning for "rollback".

also,
I suggest that you examine WS-RM, the emerging standard for reliable
messaging.

-D
"Darren McDowell via .NET 247" <an*******@dotnet247.com> wrote in message
news:%2****************@TK2MSFTNGP09.phx.gbl...
I have a situation, I was wondering if someone could help me. We have a .net
web service, it runs several transactions in sql server 2000. We have
several clients which connect to this web service in order to run their
transactions. If the client losses connectivity during the transaction, our
web service transaction completes, but these believe they have a failure. Is
there anyway to check the client connectivity and rollback the transaction
if the clients connectivity has failed within the webservice.

Thanks
Darren McDowell

-----------------------
Posted by a user from .NET 247 (http://www.dotnet247.com/)

<Id>0zpFQPnYmk6U/46yN9CBDg==</Id>
Nov 21 '05 #2

This discussion thread is closed

Replies have been disabled for this discussion.