我正在研究为应用程序编写 Web 服务。在此应用程序中,我们在事务中执行所有操作,因为“工作单元”通常不是单个实体,而是跨越多个表的多个实体。在某些情况下,我们想要“全有或全无”并且交易非常有意义。但是,我不确定如何在 Web 服务中执行此操作,甚至是否应该这样做。
我觉得 Web 服务应该是无状态的,并且提供的 API 应该建立在每个实体的基础上,但我不确定如何处理“工作单元”,如果某个部分失败,应该会发生回滚。
Web 服务应该是事务性的吗?您将如何实现事务,是否类似于发送“BEGIN TRANSACTION”并以“END TRANSACTION”结束?
如果 Web 服务是无状态的,您如何处理不独立的“工作单元”? 是否有任何关于该主题的权威文献可供我阅读?
谢谢,
最佳答案
Pat Helland 的 Life Beyond Distributed Transactions: an Apostate's Opinion 是关于该主题的经典论文之一。 .强烈推荐。
关于web-services - Web 服务应该是事务性的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6668126/