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: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to