我在Middleware中有一个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
中将 REUSE_HTTP_CLIENT 属性设置为 TRUE 。因此,这将重用与服务器的现有(已建立的)连接。
SoapUI
执行负载测试时,只创建了3个连接。后来我增加了200个请求,但连接数仍未超过3. 我不确定为什么它不能仅使用一个连接(因为使用了重用属性),以及为什么连接数没有随着请求数量逐渐增加(50个请求的3个connx和同样的3个连接) connx for 200 requests)
重用属性(HTTPConstants.REUSE_HTTP_CLIENT
)将如何表现?
在代码中使用REUSE_HTTP_CLIENT property
时,每个连接可以同时完成多少个事务?
closeIdleConnections
设置为超时30秒。 httpClient.getHttpConnectionManager().closeIdleConnections(30000);
即使这样也行不通。未使用的连接仅在5分钟后关闭。我只是想知道如果在服务器端可能有一些属性设置覆盖了30秒,这是设置在客户端?
有人可以帮我解决上述问题吗?
答案 0 :(得分:0)
您发布的代码会创建HttpClient
,但实际上并未在任何地方使用它。因此,您在连接管理器上应用的任何设置都不会产生任何影响,这并不奇怪。