HttpConnections Axis2 1.5.1 프로젝트를 사용하여 코드에서 효율적으로 사용되지 않는 곳입니다. 호스트 당 최대 연결 수를 제한하고 애플리케이션을 강조함으로써 의도적 인 한계에 따라 예상 한 응답 성이 좋지 않았고 때로는 연결이 끊임없이 갇히게되어 사용 가능한 연결이 요청이 없었던 시점에 도달 할 때까지 적게 걸리게되었습니다 응용 프로그램에 의해.Axis2 1.5.1 연결 관리
구성 : 당신이 볼 수있는
MultiThreadedHttpConnectionManager connManager = new MultiThreadedHttpConnectionManager();
HttpConnectionManagerParams connectionManagerParams = connManager.getParams();
connectionManagerParams.setMaxTotalConnections(httpMaxConnections);
connectionManagerParams.setDefaultMaxConnectionsPerHost(httpMaxConnectionsPerHost);
HttpClient httpClient = new HttpClient(connManager);
ConfigurationContext axisContext;
try {
axisContext = ConfigurationContextFactory.createDefaultConfigurationContext();
} catch (Exception e) {
throw new AxisFault(e.getMessage());
}
axisContext.setProperty(HTTPConstants.CACHED_HTTP_CLIENT, httpClient);
service = new MyStub(axisContext, url);
ServiceClient serviceClient = service._getServiceClient();
serviceClient.getOptions().setProperty(HTTPConstants.CONNECTION_TIMEOUT, httpConnectionTimeout);
serviceClient.getOptions().setProperty(HTTPConstants.SO_TIMEOUT, httpReadTimeout);
serviceClient.getOptions().setProperty(HTTPConstants.REUSE_HTTP_CLIENT, Constants.VALUE_TRUE);
그래서, 우리는 최대를 정의하고 있습니다. 연결 및 시간 초과.
해결 방법이 있습니다. 나는 누군가와 같이 서둘러서 도움을주기 위해 나눌 것입니다. 나는 전문가의 더 좋은 대답이 없다면 며칠 후 좋은 대답으로 표시 할 것입니다.
참고 : OperationClient.executeImpl (부울 값) * 표준 동작 "override"하려면 ** ServiceClient **, ** Options ** 및 ** OperationClient ** 복사본을 만들고이를 다음과 같이 내 스텁에 설정하십시오. stub._setServiceClient (serviceClient = new MyServiceClient (stub._getServiceClient())); 이 세 클래스는 메서드 호출을 Axis 원래 클래스에 위임하지만 executeImpl을 오버라이드하여 연결을 해제합니다. –