[ 
https://issues.apache.org/jira/browse/TUSCANY-1997?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

ant elder updated TUSCANY-1997:
-------------------------------

    Attachment: tuscany-binding-ws-axis2-1.0-T1997-T1893.jar

Attached tuscany-binding-ws-axis2-1.0-T1997-T1893.jar which contains the 
changes for TUSCANY-1997 and TUSCANY-1893 back-ported to the 1.0 code. The diff 
to the base 1.0 code is the following:

Index: 
src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2BindingInvoker.java
===================================================================
--- 
src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2BindingInvoker.java  
    (revision 630862)
+++ 
src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2BindingInvoker.java  
    (working copy)
@@ -61,6 +61,7 @@
     public static final QName CALLBACK_REFERENCE_REFPARM_QN = new 
QName(Constants.SCA10_TUSCANY_NS, "CallbackReference");
     public static final QName CALLBACK_ID_REFPARM_QN = new 
QName(Constants.SCA10_TUSCANY_NS, "CallbackID");
     public static final QName CONVERSATION_ID_REFPARM_QN = new 
QName(Constants.SCA10_TUSCANY_NS, "ConversationID");
+    public static long GLOBAL_AXIS_TIMEOUT = 120000L;

     public Axis2BindingInvoker(ServiceClient serviceClient,
                                QName wsdlOperationName,
@@ -97,7 +98,7 @@
         // ensure connections are tracked so that they can be closed by the 
reference binding
         MessageContext requestMC = 
operationClient.getMessageContext(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
         requestMC.getOptions().setProperty(HTTPConstants.REUSE_HTTP_CLIENT, 
Boolean.TRUE);
-        requestMC.getOptions().setTimeOutInMilliSeconds(120000L);
+        requestMC.getOptions().setTimeOutInMilliSeconds(GLOBAL_AXIS_TIMEOUT);

         operationClient.execute(true);

Index: 
src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2OneWayBindingInvoker.java
===================================================================
--- 
src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2OneWayBindingInvoker.java
        (revision 630862)
+++ 
src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2OneWayBindingInvoker.java
        (working copy)
@@ -48,7 +48,11 @@

         // ensure connections are tracked so that they can be closed by the 
reference binding
         MessageContext requestMC = 
operationClient.getMessageContext(WSDLConstants.MESSAGE_LABEL_OUT_VALUE);
-        requestMC.getOptions().setProperty(HTTPConstants.REUSE_HTTP_CLIENT, 
Boolean.TRUE);
+        //requestMC.getOptions().setProperty(HTTPConstants.REUSE_HTTP_CLIENT, 
Boolean.TRUE);
+        Options opt = requestMC.getOptions();
+        opt.setProperty(HTTPConstants.REUSE_HTTP_CLIENT, Boolean.TRUE);
+        opt.setUseSeparateListener(true);
+        opt.setProperty(HTTPConstants.AUTO_RELEASE_CONNECTION,Boolean.TRUE);

         operationClient.execute(false);

Index: 
src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceClient.java
===================================================================
--- 
src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceClient.java   
    (revision 630862)
+++ 
src/main/java/org/apache/tuscany/sca/binding/ws/axis2/Axis2ServiceClient.java   
    (working copy)
@@ -52,8 +52,10 @@
 import org.apache.axis2.description.WSDL11ToAxisServiceBuilder;
 import org.apache.axis2.description.WSDL2Constants;
 import org.apache.axis2.transport.http.HTTPConstants;
+import org.apache.axis2.util.threadpool.ThreadPool;
 import org.apache.commons.httpclient.HttpClient;
 import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
+import org.apache.commons.httpclient.params.HttpConnectionManagerParams;
 import org.apache.tuscany.sca.assembly.AbstractContract;
 import org.apache.tuscany.sca.binding.ws.WebServiceBinding;
 import org.apache.tuscany.sca.contribution.Contribution;
@@ -78,6 +80,8 @@
     private ServiceClient serviceClient;
     private static final QName SOAP12_INTENT = new 
QName("http://www.osoa.org/xmlns/sca/1.0";, "soap12");

+    public static int  httpMaxConnections = 2;
+
     public Axis2ServiceClient(RuntimeComponent component,
                               AbstractContract contract,
                               WebServiceBinding wsBinding,
@@ -108,7 +112,26 @@
             AxisService axisService =
                 createClientSideAxisService(wsdlDefinition, serviceQName, 
portName, new Options());

+            HttpClient httpClient = (HttpClient) 
configContext.getProperty(HTTPConstants.CACHED_HTTP_CLIENT);
+            if (httpClient == null)
+            {
+                MultiThreadedHttpConnectionManager connectionManager = new 
MultiThreadedHttpConnectionManager();
+                HttpConnectionManagerParams connectionManagerParams = new 
HttpConnectionManagerParams();
+                
connectionManagerParams.setDefaultMaxConnectionsPerHost(httpMaxConnections);
+                connectionManagerParams.setTcpNoDelay(true);
+                connectionManagerParams.setStaleCheckingEnabled(true);
+                connectionManagerParams.setLinger(0);
+                connectionManager.setParams(connectionManagerParams);
+                httpClient  = new HttpClient(connectionManager);
+                configContext.setThreadPool(new ThreadPool(1, 5));
+                configContext.setProperty(HTTPConstants.REUSE_HTTP_CLIENT,
+                                          Boolean.TRUE);
+                configContext.setProperty(HTTPConstants.CACHED_HTTP_CLIENT,
+                                          httpClient);
+            }
+
             return new ServiceClient(configContext, axisService);
+
         } catch (AxisFault e) {
             throw new RuntimeException(e); // TODO: better exception
         }
 

> Axis binding does not allow external configuration to increase the number of 
> the maximum connections opened.
> ------------------------------------------------------------------------------------------------------------
>
>                 Key: TUSCANY-1997
>                 URL: https://issues.apache.org/jira/browse/TUSCANY-1997
>             Project: Tuscany
>          Issue Type: Bug
>          Components: Java SCA Axis Binding Extension
>    Affects Versions: Java-SCA-Next
>         Environment: Solaris , Windows , Websphere , Tomcat
>            Reporter: Catalin Boloaja
>            Assignee: Jean-Sebastien Delfino
>             Fix For: Java-SCA-Next
>
>         Attachments: 
> tuscany-binding-ws-axis2-1.0-incubating-TUSCANY-1997.jar, 
> tuscany-binding-ws-axis2-1.0-T1997-T1893.jar, 
> tuscany-binding-ws-axis2-1.1-TUSCANY-1997.jar
>
>
> In a high volume situation the default setting for Axis2 is 2 connections per 
> host.
> The default protocol being HTTP 1.1 , this means that only 2 POST requests 
> can be issued at the same time.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to