А это значит, что по умолчанию лишь 2 пользователя смогут одновременно делать запрос.
Но решение вроде есть:
http://amilachinthaka.blogspot.com/2010/01/improving-axis2-http-transport-client.html
ConfigurationContext configurationContext =
ConfigurationContextFactory.createConfigurationContextFromFileSystem(
AXIS2_REPOSITORY_LOCATION, AXIS2_CLIENT_CONFIG_FILE);
MultiThreadedHttpConnectionManager multiThreadedHttpConnectionManager = new MultiThreadedHttpConnectionManager();
HttpConnectionManagerParams params = new HttpConnectionManagerParams();
params.setDefaultMaxConnectionsPerHost(20);
multiThreadedHttpConnectionManager.setParams(params);
HttpClient httpClient = new HttpClient(multiThreadedHttpConnectionManager);
configurationContext.setProperty(HTTPConstants.CACHED_HTTP_CLIENT, httpClient);
Update 21/05/2010
У меня это решение не работало. Подсмотрел другое решение, и оно работает.
В двух словах, updateStub надо вызвать всего один раз (в принципе, это проверяется в самом методе), чтобы изменить настройки.
private static Boolean bConfed = false;
protected static void updateStub(org.apache.axis2.client.Stub stub)
{
synchronized (bConfed)
{
if (bConfed) return;
int maxTotal = 15;
int maxPerHost = 5;
MultiThreadedHttpConnectionManager httpConnectionManager = new MultiThreadedHttpConnectionManager();
HttpConnectionManagerParams params = httpConnectionManager.getParams();
if (params == null)
{
params = new HttpConnectionManagerParams();
httpConnectionManager.setParams(params);
}
params.setMaxTotalConnections(maxTotal);
params.setDefaultMaxConnectionsPerHost(maxPerHost);
HttpClient httpClient = new HttpClient(httpConnectionManager);
ConfigurationContext context = stub._getServiceClient().getServiceContext().getConfigurationContext();
context.setProperty(HTTPConstants.CACHED_HTTP_CLIENT, httpClient);
log.info("Axjs Http Client Conf is changed, max conn.={}, max per host = {}", maxTotal, maxPerHost);
bConfed = true;
}
}
Комментариев нет:
Отправить комментарий