1

我正在研究 Blackberry WebWorks 中的移动原生应用程序。我的应用程序在 Tomcat 5.5 上运行,它从 IIS 7.5 上运行的 ASMX Web 服务获取数据。

在数据获取操作期间,我在 2 分钟后超时。我无法克服这个问题,请帮助我克服。

我正在设置 ajax 超时,并且在配置文件中我也提到了超时,但我仍然收到超时。

经过长时间的研究,我发现问题出在 ASMX 服务调用上。在特定的 ASMX 服务方法中,由于涉及大量计算,该方法平均需要 4 分钟才能响应结果。由于 HTTP 响应长时间没有返回调用应用程序超时,我的 ASMX Web 服务工作正常。

我用 Tomcat 5.5 的 server.xml 文件尝试了一切,包括所有可能克服这个问题的属性,但没有结果。

请在这方面帮助我。

4

1 回答 1

0

您需要告诉我们更多有关“巨大计算”的信息以获得具体帮助。根据计算的性质,可以应用一些策略:

  1. 如果客户端正在发送大量工作负载,请将其分解为可以在两分钟内得到满足的较小请求。

  2. 在响应格式中包含某种无操作操作,如果完整响应尚未准备好,则让 ASMX 服务定期发送无操作操作。这将在长时间计算继续时保持连接有效。但是,这需要对客户端和 ASMX 服务之间的所有缓冲有相当深入的了解,因为您不希望无操作操作进行缓冲,因为您专门使用它来保持连接打开。这可能很难理解。

  3. 将单个请求/响应转换为两个请求/响应对,一个用于“开始”,一个用于“检查”。'start' API 开始计算,并返回某种 ID,客户端可以使用它来调用 'check' API 以查看计算是否完成,并获取结果。

于 2012-09-30T20:13:52.630 回答