由于长时间接受HTTP响应,移动应用程序收到错误

时间:2012-09-30 19:20:19

标签: jquery ajax web-services blackberry

我正在使用Blackberry WebWorks中的移动本机应用程序。我的应用程序在Tomcat 5.5上运行,后者从IIS 7.5上运行的ASMX Web服务获取数据。

在数据获取操作期间,我在2分钟后获得超时。我不能过来这个问题请帮助我克服。

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

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

我尝试使用Tomcat 5.5的server.xml文件,包含了所有可能的属性,但没有结果。

请在这方面帮助我。

1 个答案:

答案 0 :(得分:0)

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

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

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

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