synapse-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Isuru Udana Loku Narangoda (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (SYNAPSE-989) Extra TCP Connections get created under high concurrency
Date Sun, 13 Jul 2014 07:34:04 GMT

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

Isuru Udana Loku Narangoda updated SYNAPSE-989:
-----------------------------------------------

    Attachment: SYNAPSE-989.patch
                CloneProxy.xml

> Extra TCP Connections get created under high concurrency
> --------------------------------------------------------
>
>                 Key: SYNAPSE-989
>                 URL: https://issues.apache.org/jira/browse/SYNAPSE-989
>             Project: Synapse
>          Issue Type: Bug
>            Reporter: Isuru Udana Loku Narangoda
>            Assignee: Isuru Udana Loku Narangoda
>            Priority: Blocker
>         Attachments: CloneProxy.xml, SYNAPSE-989.patch
>
>
> This is observable with following proxy configuration. To clearly see the alive connections
we need to increase the backend latency.
> <proxy name="CloneProxy" xmlns="http://ws.apache.org/ns/synapse">
>         <target>
>             <inSequence>
>                 <property name="NO_KEEPALIVE" value="true" scope="axis2"/> 
>                 <clone>
>                     <target>
>                         <sequence>
>                             <send>
>                                 <endpoint>
>                                     <address
>                                             uri="http://localhost:9000/services/SimpleStockQuoteService"/>
>                                 </endpoint>
>                             </send>
>                         </sequence>
>                     </target>
>                     <target>
>                         <sequence>
>                             <send>
>                                 <endpoint>
>                                     <address
>                                             uri="http://localhost:9000/services/SimpleStockQuoteService"/>
>                                 </endpoint>
>                             </send>
>                         </sequence>
>                     </target>
>                     <target>
>                         <sequence>
>                             <send>
>                                 <endpoint>
>                                     <address
>                                             uri="http://localhost:9000/services/SimpleStockQuoteService"/>
>                                 </endpoint>
>                             </send>
>                         </sequence>
>                     </target>
>                     <target>
>                         <sequence>
>                             <send>
>                                 <endpoint>
>                                     <address
>                                             uri="http://localhost:9000/services/SimpleStockQuoteService"/>
>                                 </endpoint>
>                             </send>
>                         </sequence>
>                     </target>
>                     <target>
>                         <sequence>
>                             <send>
>                                 <endpoint>
>                                     <address
>                                             uri="http://localhost:9000/services/SimpleStockQuoteService"/>
>                                 </endpoint>
>                             </send>
>                         </sequence>
>                     </target>
>                 </clone>
>             </inSequence>
>             <outSequence>
>                 <aggregate>
>                     <onComplete xmlns:m0="http://services.samples"
>                                 expression="//m0:getQuoteResponse">
>                         <send/>
>                     </onComplete>
>                 </aggregate>
>             </outSequence>
>         </target>
>     </proxy>
> According to this configuration only 5 connections need to be created with the backend
server for a single request sent to the proxy. But synapse creates additional connections.
Following is the netstat output.
> watch -n1 -d "netstat -n -tap | grep 29860"
> Every 1.0s: netstat -n -tap | grep 29860 
> tcp6       0      0 :::8243                 :::*                    LISTEN      29860/java
> tcp6       0      0 :::46903                :::*                    LISTEN      29860/java
> tcp6       0      0 :::8280                 :::*                    LISTEN      29860/java
> tcp6       0      0 :::1099                 :::*                    LISTEN      29860/java
> tcp6       0      0 127.0.0.1:56884         127.0.0.1:9000          ESTABLISHED 29860/java
> tcp6       0      0 127.0.0.1:56885         127.0.0.1:9000          ESTABLISHED 29860/java
> tcp6       0      0 127.0.0.1:56886         127.0.0.1:9000          ESTABLISHED 29860/java
> tcp6       0      0 127.0.0.1:56887         127.0.0.1:9000          ESTABLISHED 29860/java
> tcp6       0      0 127.0.0.1:56889         127.0.0.1:9000          ESTABLISHED 29860/java
> tcp6       0      0 127.0.0.1:56890         127.0.0.1:9000          ESTABLISHED 29860/java
> tcp6       0      0 127.0.0.1:8280          127.0.0.1:35665         ESTABLISHED 29860/java
> tcp6       0      0 127.0.0.1:56888         127.0.0.1:9000          ESTABLISHED 29860/java
> We can see 7 connections get created. Excess 2 connections remains for sometime after
all the other connections get terminated.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
For additional commands, e-mail: dev-help@synapse.apache.org


Mime
View raw message