中间件中有一个java(axis2 1.4.1 client)组件,它使用托管在另一个应用程序中的web服务。我正面临着一些问题。
请找到下面的代码片段
ConfigurationContext configContxt;
MultiThreadedHttpConnectionManager connxMgr = new MultiThreadedHttpConnectionManager();
HttpConnectionManagerParams params = connxMgr.getParams();
params.setDefaultMaxConnectionsPerHost(50);
params.setMaxTotalConnections(50);
connxMgr .setParams(params);
HttpClient client = new HttpClient(connxMgr);
configContxt.setProperty(HTTPConstants.REUSE_HTTP_CLIENT, "True");请帮助澄清以下问题:
netstat -a|grep <<provider URI>>来确认。当我们使用axis2 1.3v客户端时,没有创建新的连接,请说明为什么使用axis2 1.4.1创建新连接?
为了防止这种情况,我在ConfigurationContext中将ConfigurationContext属性设置为TRUE。因此,这将重用到服务器的现有(已经建立的)连接。
SoapUI进行负载测试时,只创建了3个连接。后来,我增加到200个请求,但连接数仍然不超过3。不确定为什么不能只使用一个连接(因为使用了重用属性),也不知道为什么连接的数量没有随着请求的数量逐渐增加(50个请求有3个连接,200个请求有相同的连接)。
重用属性(HTTPConstants.REUSE_HTTP_CLIENT)将如何表现?
REUSE_HTTP_CLIENT property时,每个连接可以并发执行多少个事务?1. Another Issue is that I have set the `closeIdleConnections` with the timeout of 30 secs. **`httpClient.getHttpConnectionManager().closeIdleConnections(30000);`**
就算是这样也没用。未使用的连接仅在5分钟后才会关闭。我只想知道是否在服务器端设置了一些属性,它覆盖了在客户端设置的30秒?
有人能帮我做上面的事吗?
发布于 2016-05-02 18:56:17
您发布的代码创建了一个HttpClient,但实际上并没有在任何地方使用它。因此,您在连接管理器上应用的任何设置都没有任何效果,这并不奇怪。
https://stackoverflow.com/questions/36983513
复制相似问题