You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by "Isuru Udana Loku Narangoda (JIRA)" <ji...@apache.org> on 2014/07/13 09:30:05 UTC

[jira] [Created] (SYNAPSE-989) Extra TCP Connections get created under high concurrency

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

             Summary: 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


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