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]