Web服务连接超时和请求超时之间的差异

时间:2015-12-18 11:22:41

标签: java soap

WebClientTestService service = new WebClientTestService() ;
int connectionTimeOutInMs = 5000;
Map<String,Object> context=((BindingProvider)service).getRequestContext();
context.put("com.sun.xml.internal.ws.connect.timeout", connectionTimeOutInMs);
context.put("com.sun.xml.internal.ws.request.timeout", connectionTimeOutInMs);
context.put("com.sun.xml.ws.request.timeout", connectionTimeOutInMs);
context.put("com.sun.xml.ws.connect.timeout", connectionTimeOutInMs);

请分享主要在连接超时和请求超时方面的差异。

我需要知道这些参数值的推荐值。

设置超时值的标准是什么?

1 个答案:

答案 0 :(得分:6)

  

请分享主要在连接超时和请求超时方面的差异。

     

我需要知道这些参数值的推荐值。

  • 连接超时(10s-30s):等待初始连接的时间长短,例如:如果服务目前不可用。
  • 套接字超时(10s-20s):如果服务在发送数据后停止响应,则等待多长时间。
  • 请求超时(30s-300s):等待整个请求完成的时间。
  

设置超时值的标准是什么?

如果1-2分钟后没有发生任何事情,那么网络用户将会感到不耐烦,但是可以允许后端请求运行更长时间。

还要考虑在请求完成(或超时)之前不释放服务器资源 - 因此,如果您有太多请求和超时,您的服务器可能会耗尽资源而无法为进一步的请求提供服务。

请求超时应设置为大于请求完成的预期时间的值,可能有一些空间允许在重负载下偶尔性能降低。

连接/套接字超时通常设置得更低,因为通常表示服务器问题,等待另外10-15秒通常无法解决。