Spring WS соединение, объединяющее несколько пулов?
У меня есть следующая конфигурация WS:
private WebServiceOperations createWs(final String uri) {
WebServiceTemplate wst = new WebServiceTemplate();
wst.setDefaultUri(uri);
wst.setMarshaller(marshaller());
wst.setUnmarshaller(marshaller());
HttpComponentsMessageSender messageSender = new HttpComponentsMessageSender(createPooling());
messageSender.setConnectionTimeout(timeout);
messageSender.setReadTimeout(timeout);
wst.setMessageSender(messageSender);
return wst;
}
public DefaultHttpClient createPooling() {
PoolingClientConnectionManager a = new PoolingClientConnectionManager();
a.setDefaultMaxPerRoute(6);
a.setMaxTotal(50);
DefaultHttpClient defaultClient = new DefaultHttpClient(a);
defaultClient.addRequestInterceptor(new HttpComponentsMessageSender.RemoveSoapHeadersInterceptor(), 0);
return defaultClient;
}
В случае использования вышеуказанного конфига для WS создается один пул TCP-соединения, максимум 6 потоков. Если один завершил работу, ответ возвращается, а другой отправляется в пул. Это указывает на то, что жив только один пул. Сервис способен обрабатывать гораздо больший трафик, но не в пределах одного пула. В случае нескольких запущенных экземпляров Java это хорошо видно.
Вопрос: Как я могу изменить поведение пула, чтобы несколько пулов TCP создавались для одной и той же службы и чтобы запросы распределялись по ним?