私はアプリケーションのWebサービスの作成を検討しています。このアプリケーションでは、「作業単位」はしばしば単一のエンティティではなく、複数の表にまたがる複数のエンティティであるため、トランザクション内のすべてを実行します。 「すべてか何か」がほしいと思う状況があり、トランザクションが完璧な意味を持ちます。私はWebサービスでこれをどうやってやるべきか、私がすべきことは本当にわかりません。Webサービスをトランザクションにする必要がありますか?
Webサービスはステートレスでなければならず、提供されるAPIはエンティティ単位で構築する必要がありますが、1つの部分が失敗すると「ロールバック」が発生する「作業単位」を処理する方法がわかりません。
Webサービスをトランザクションにする必要がありますか?トランザクションをどのように実装しますか?「BEGIN TRANSACTION」を送信し、「END TRANSACTION」で終わる行に沿ったものでしょうか?
ウェブサービスがステートレスである場合、独立していない「作業単位」はどう対処しますか? 私はその話題について読むことができるまったくの明確な文献はありますか?
おかげで、
私は、Webサービス層はトランザクション内のアクターではなく、下のレイヤーでトランザクションを要求し、コミットされたかロールバックされたかに関わらず、結果をクライアントに報告すると考えています。 1つのアプリケーションノード内で起こりうることを超えたトランザクションロジックを求められているなら、それを「デザインの匂い」と呼んでいます。 – wberry