Есть ли транзакции вокруг нескольких вызовов веб-сервисов? - PullRequest
0 голосов
/ 04 апреля 2011

Несколько дней назад я задавал этот вопрос на форумах stackoverflow и ASP.net. Ответ, который я получил, был: «Нет, это невозможно. Транзакции не могут выходить за границы веб-службы». Есть ли транзакции вокруг нескольких вызовов веб-сервиса?

но на форуме ASP.net я получил ответ ниже: http://jalpesh.blogspot.com/2010/05/using-transactions-with-linq-to-sql.html он предлагает system.transaction. что вы думаете об этом?

Ответы [ 2 ]

1 голос
/ 06 апреля 2011

Есть ли транзакции вокруг несколько вызовов веб-сервиса?

Ответ на поставленный выше вопрос заключается в том, что в общем случае возможно , чтобы различные веб-службы участвовали в одной и той же транзакции. Для этого вы должны использовать отраслевой стандарт WS-Transaction , который является частью спецификации WS-Coordination . Интересует спецификация WS-Атомная транзакция (WSAT) .

Если вы работаете в стеке Microsoft и правильно настроили MSDTC между всеми компьютерами, то можно передавать транзакции между веб-службами (см. Распространение транзакции между доменами приложений .

Итак, ответ - да, это возможно в целом. Однако, если вы говорите о включении транзакций вокруг произвольных сторонних сервисов (как, по-видимому, ваш предыдущий вопрос), то это , вероятно, невозможно, поскольку, скорее всего, эти сторонние сервисы не поддерживают WSAT ( не вините их!).

К сожалению, в этих сценариях лучшее, на что вы можете надеяться в случае неудачи, - это выполнять компенсирующие действия.

0 голосов
/ 04 апреля 2011

LINQ to SQL действительно не имеет ничего общего с транзакциями, связанными с вызовами веб-служб.

Я помню, что читал об этом: http://en.wikipedia.org/wiki/WS-Transaction, но не имею представления о состоянии любой из реализаций.Поэтому я не буду говорить, что это невозможно, но если это возможно, основываясь на компаниях, участвующих в спецификации, это будет очень дорого и очень сложно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...