[
https://jira.jboss.org/browse/JBESB-3356?page=com.atlassian.jira.plugin.s...
]
David Ward closed JBESB-3356.
-----------------------------
Resolution: Done
Now, in all 3 cases (HttpRouter, SOAPClient and SOAPProxy), the HttpClient properties
"max-total-connections" and "max-connections-per-host" will both
DEFAULT to the value of maxThreads so the user doesn't have to set those properties
themselves. This is good for the straightforward cases.
For advanced configuration or performance tuning, the user can STILL override those
properties individually, either in jboss-esb.xml or in a referenced properties file. For
example:
<action class="...SOAPProxy" ...>
...
<property name="http-client-properties">
<http-client-property name="max-total-connections"
value="#"/>
<http-client-property name="max-connections-per-host"
value="#"/>
</property>
or this:
<action class="...SOAPProxy" ...>
...
<property name="file"
value="/file-containing-those-props.properties"/>
or this:
<action class="...SOAPClient" ...>
...
<property name="http-client-properties">
<http-client-property name="file"
value="/file-containing-those-props.properties"/>
</property>
[trunk]$ svn commit
Sending product/rosetta/src/org/jboss/soa/esb/actions/routing/http/HttpRouter.java
Sending product/rosetta/src/org/jboss/soa/esb/helpers/ConfigTree.java
Sending product/rosetta/src/org/jboss/soa/esb/http/HttpClientFactory.java
Sending product/rosetta/src/org/jboss/soa/esb/http/configurators/Connection.java
Sending
product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/SOAPClient.java
Sending
product/services/soap/src/main/java/org/jboss/soa/esb/actions/soap/proxy/HttpSOAPProxyTransport.java
Sending
product/services/soap/src/test/java/org/jboss/soa/esb/actions/soap/proxy/SOAPProxyUnitTest.java
Transmitting file data .......
Committed revision 33577.
maxThreads does not adequately propagate to HttpClient in HttpRouter,
SOAPClient and SOAPProxy
----------------------------------------------------------------------------------------------
Key: JBESB-3356
URL:
https://jira.jboss.org/browse/JBESB-3356
Project: JBoss ESB
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Configuration, Web Services
Affects Versions: 4.8
Reporter: David Ward
Assignee: David Ward
Fix For: 4.9
First, some background:
If one is trying to set the maxThreads for INVM invocation of a Service (where
invmScope="GLOBAL"), then one would do it like so:
<service .... invmScope="GLOBAL">
<property name="maxThreads" value="#"/>
....
If one is trying to set the maxThreads for an ESB *aware* Listener's invocation of a
Service, then one would do it like so:
<service ...>
<listeners>
<xxx-listener ...>
<property name="maxThreads" value="#"/>
In each of these cases, an action can look for the maxThreads via it's passed in
ConfigTree's parent:
config.getParent().getAttribute(ListenerTagNames.MAX_THREADS_TAG).
The HttpRouter takes advantage of this and *defaults* the max-total-connections property
it hands to HttpClient to the value of the parent ConfigTree's maxThreads.
Now, the problems:
1) HttpRouter only defaults HttpClient's max-total-connections property to the value
of maxThreads. It should also default max-connections-per-host.
2) SOAPClient similarly only defaults HttpClient's max-total-connections property to
the value of maxThreads. It should also default max-connections-per-host.
3) The SOAPProxy class "HttpSOAPProxyTransport" wraps HttpRouter, and creates
it with a ConfigTree. However, this ConfigTree is a *clone* of the ConfigTree passed into
the SOAPProxy, which does *not* have a parent ConfigTree. Thus, there is no parent to get
the maxThreads from. Because of that, if someone wants to set the max-total-connections
and max-connections-per-host, one has to do this:
<action class="...SOAPProxy" ...>
...
<property name="http-client-properties">
<http-client-property name="max-total-connections"
value="#"/>
<http-client-property name="max-connections-per-host"
value="#"/>
</property>
or this:
<action class="...SOAPProxy" ...>
...
<property name="file"
value="/file-containing-those-props.properties>
In problems 1 and 2, the user needs to know to set the
"max-connections-per-host" property. In problem 3, the user needs to know to
set both the "max-total-connections" and "max-connections-per-host"
properties. If the user doesn't know to do this, they might wonder "why am I
getting such bad out-of-the-box performance?"
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira