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