您如何通过 Web 服务集成应用程序并处理技术错误,例如更改状态的 Web 服务调用的连接错误?
例如,当网络连接在 Web 服务调用期间中断时,客户端如何知道 Web 服务是否已处理其操作?
能否仅在业务层解决此问题(例如查询以前的调用状态),或者您是否知道一些很好的框架/最佳实践可以帮助围绕 Web 服务包装事务保证?
您如何通过 Web 服务集成应用程序并处理技术错误,例如更改状态的 Web 服务调用的连接错误?
例如,当网络连接在 Web 服务调用期间中断时,客户端如何知道 Web 服务是否已处理其操作?
能否仅在业务层解决此问题(例如查询以前的调用状态),或者您是否知道一些很好的框架/最佳实践可以帮助围绕 Web 服务包装事务保证?
使用在业务层中跟踪的某种事务上下文自行实现这一切始终是一种选择。您可以使用一些补偿机制来确保在需要时回滚事务,但您需要:
我能想到的另一个选择是,如果您正在使用SOAP
,您可以进行异步通信并寻找一些实现WS-Coordination、WS-AtomicTransaction 和 WS-BusinessActivity规范的堆栈,然后自行决定在您的上下文中这是否是个好主意或不。例如,我认为Axis2 支持这些,但当然最终它取决于您使用的技术和堆栈。
从上面的文章:
WS-AtomicTransaction 定义了一种协调类型,该类型对于处理系统生成的异常(例如不完整的写入操作或进程异常终止)最有用。
以下是它实现的 2-Phase Commit 的类型。
希望这可以帮助!