Hello there!
This is thread is related to XML Web Services Transactions in ASP.NET.
I have a web service called Orchestration which calls other web services like Flight, Hotel and Payment.
All the web services have web methods with TransactionOption=Required and AutoComplete attribute including the Orchestration web service web method which calls the other web services.
The orchestration web service calls the flight, hotel and payment asynchronously, i.e. in parallel. In the payment web service, a credit card is validated and sends a
confirmation mail to the credit card holder if the payment is
authorised. I am using gmail SMTP to send mail.
If the flight or hotel fails but the payment web service succeeds, the payment web service should be rolled back. I thought that this would be taken care automatically but I have noted that the confirmation mail is sent although there is an exception in the orchestration service.
My aim is that the payment service should be rolled back, i.e the mail should not be sent when the flight or hotel service crashes. Does transactions cater for DB operations only? I have noted that if an exception occurs in autocomplete transactions, DB operations are automatically rolled back but the mail operation is not rolled back. Is there a way to cater for non-db operations as well?
Grateful if anyone of you could help me on this.
Thanks,
Kaushik