0

我需要知道我的 Web 服务的客户端是否已成功接收到消息。如果客户端没有收到消息(在调用过程中客户端网络出现故障),我想回滚我的更改,因此他们进行的下一次调用将为他们提供他们第一次尝试获取的相同数据.

对 Web 服务的每次调用都会给他们一个连续的“页面”数据,我不希望他们错过一个“页面”。如果我无法判断传输何时失败,我将无法回滚,因此客户可能不得不致电支持人员告诉他们丢失的“页面”。

我尝试在一个冗长的调用过程中终止客户端进程,而服务器仍在进行一些数据处理,但服务器只是继续运行并成功完成。

这是一个使用 Axis2 和 JBoss 和 SOAP 的 Java Web 服务。我正在深入研究有关此设置的文档,因此希望可以进行配置。

4

2 回答 2

2

我不认为有一种内置的方式让客户端给出它已收到有效负载的 Ack。因此,您可能需要将其构建到您的业务流程中。

我已经看到这有几种不同的方式。

  • 向客户端提供一个元素,指定它正在接收有效载荷 x of y,如果客户端由于网络问题没有拾取特定有效载荷,它可以再次请求该特定有效载荷。
  • 如果这是全有或全无的情况,则让客户端在事务开始时从 Web 服务请求某种令牌,然后在它拾取所有“页面”之后,客户端可以进行另一个调用,该调用将让 Web 服务知道事务已完成。

希望有帮助。

于 2009-08-26T21:02:05.237 回答
0

您应该从 Web 服务返回响应状态代码。在您返回“200 - Ok”之前,不要认为对 Web 服务的调用是成功的。

于 2009-08-26T20:49:56.243 回答