When creating the client configuration context. Create it as follows.
private ConfigurationContext getClientConfigurationContext() throws
AxisFault {
String clientRepositoryLocation =
serverConfig.getFirstProperty(CLIENT_REPOSITORY_LOCATION);
String clientAxis2XmlLocationn =
serverConfig.getFirstProperty(CLIENT_AXIS2_XML_LOCATION);
ConfigurationContext clientConfigContext =
ConfigurationContextFactory.createConfigurationContextFromFileSystem(
clientRepositoryLocation, clientAxis2XmlLocationn);
MultiThreadedHttpConnectionManager httpConnectionManager = new
MultiThreadedHttpConnectionManager();
HttpConnectionManagerParams params = new
HttpConnectionManagerParams();
// Set the default max connections per host
int defaultMaxConnPerHost = 500;
Parameter defaultMaxConnPerHostParam =
clientConfigContext.getAxisConfiguration().getParameter("defaultMaxConnPerHost");
if(defaultMaxConnPerHostParam != null){
defaultMaxConnPerHost =
Integer.parseInt((String)defaultMaxConnPerHostParam.getValue());
}
params.setDefaultMaxConnectionsPerHost(defaultMaxConnPerHost);
// Set the max total connections
int maxTotalConnections = 15000;
Parameter maxTotalConnectionsParam =
clientConfigContext.getAxisConfiguration().getParameter("maxTotalConnections");
if(maxTotalConnectionsParam != null){
maxTotalConnections =
Integer.parseInt((String)maxTotalConnectionsParam.getValue());
}
params.setMaxTotalConnections(maxTotalConnections);
params.setSoTimeout(600000);
params.setConnectionTimeout(600000);
httpConnectionManager.setParams(params);
clientConfigContext.setProperty(HTTPConstants.MULTITHREAD_HTTP_CONNECTION_MANAGER,
httpConnectionManager);
registerHouseKeepingTask(clientConfigContext);
clientConfigContext.setProperty(ServerConstants.WORK_DIR,
serverWorkDir);
return clientConfigContext;
}
On Fri, Jul 15, 2011 at 12:13 PM, Himakar Chennapragada
<[email protected]>wrote:
>
> changing the subject to better describe the content/issue.
>
> Best Regards,
> -Himakar
> ----------------------------------------------------
> Himakar Chennapragada
> IMS e-Business, SOA Development
> IBM Silicon Valley Lab, San Jose, CA
> Phone: 408-463-4758, Tie Line: 543-4758
> Email: [email protected]
> ----------------------------------------------------
>
> ----- Forwarded by Himakar Chennapragada/Silicon Valley/IBM on 07/14/2011
> 11:41 PM -----
> From: Himakar Chennapragada/Silicon Valley/IBM To:
> [email protected] Date: 07/14/2011 11:40 PM Subject: Axis2
> question
> ------------------------------
>
>
> Hi,
> We have an Axis2 timeout issue that we are trying to resolve and need your
> urgent help. Any input/comments are highly appreciated. Thanks!
>
>
> ----------------------------------------------------------------------------------------------------------------------------------------
> Here is some background information and questions:
>
> We have multiple threads calling out to *same or different *web services.
> We use a new ServiceClient for *each invocation* to an external web
> service (same or different service) with the REUSE_HTTP_CLIENT option; each
> invocation has its own set of "Options" as well. We do that partly because
> the threads doing the invocations can invoke many different web services
> (not just one) and I am sure there is room for improvement in that area (see
> my second question below).
>
> We use *Axis2 v1.4.1*.
>
> Here are my questions:
> 1. We had a timeout issue where the timeout is not being honored properly
> and I put in a patch (see patch details below) and it still does not
> work/honored for larger workloads; for very small workloads it is fine tho.
> I put in a patch to set timeout for each invocation but it still didn't
> help. I could see that the new timeout values are being set properly (after
> I applied the patch) in the "options" but no luck. Any idea why the
> timeouts are not still honored even after applying the patch? (my guess is
> due to the way we use a new ServiceClient with the HTTP REUSE option but I
> could be wrong).
>
> Patch details:
> The patch is applied to
> org.apache.axis2.transport.http.AbstractHTTPSender.class
> http://web.archiveorange.com/archive/v/R4VLPPfrNvyJ4cJFywD8
>
> https://issues.apache.org/jira/browse/AXIS2-3160?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
>
> 2. Also wondering if it is a good idea to use only one ServiceClient for
> different services?
>
> Best Regards,
> -Himakar
> ----------------------------------------------------
> Himakar Chennapragada
> IMS e-Business, SOA Development
> IBM Silicon Valley Lab, San Jose, CA
> Phone: 408-463-4758, Tie Line: 543-4758
> Email: [email protected]
> ----------------------------------------------------
>
>
>
>
>
>
>
--
*Afkham Azeez*
Director of Architecture; WSO2, Inc.; http://wso2.com,
*Member; Apache Software Foundation;
**http://www.apache.org/*<http://www.apache.org/>
*
*
*email: **[email protected]* <[email protected]>* cell: +94 77 3320919
blog: **http://blog.afkham.org* <http://blog.afkham.org>*
twitter: **http://twitter.com/afkham_azeez*<http://twitter.com/afkham_azeez>
*
linked-in: **http://lk.linkedin.com/in/afkhamazeez*
*
*
*Lean . Enterprise . Middleware*
*
*