Axis2 1.5.1 プロジェクトを使用するコードで効率的に使用されていない HttpConnections。ホストごとの最大接続数に特定の制限を設定し、アプリケーションに負荷をかけることで、意図的な制限に従って応答性が期待したほど良くなく、接続が無期限に停止することもあったため、利用可能な接続は毎回少なくなり、要求がまったく応答されなくなりました。アプリケーションによって。
構成:
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);
ご覧のとおり、max を定義しています。接続とタイムアウト。
私のように急いでいる誰かを助けることを望んで、共有する回避策があります。専門家からのより良い回答がない場合は、数日後に私の回答を良いものとしてマークします。