2015-12-18 56 views
3
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); 

请分享主要在连接超时和请求超时方面的差异。Web服务连接超时和请求超时之间的区别

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

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

回答

3

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

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

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

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

如果1-2分钟后没有发生任何事情,这取决于网络用户会变得不耐烦,但是后端请求可以允许运行更长时间。

还要考虑服务器资源没有被释放,直到请求完成(或超时) - 所以,如果你有太多的要求和很长的超时服务器可能会耗尽资源,无法服务的进一步要求。

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

连接/套接字超时通常会设置得较低,因为通常表示服务器问题,在等待另一个10-15s时通常无法解决。