Outbound connections held by ConnectionTable may be thread-owned or shared. Thread-owned connections are held in a map in a ThreadLocal for exclusive use by a thread. These are created if you set "conserve-sockets=false" when creating your cache. Shared connections are in common tables used by all threads.

There are also "receiver" connections that are not in these tables. These are created when another process connects to the server-port in TCPConduit and are tracked in a different collection in ConnectionTable.

Outbound connections are removed from the table if they are found to be closed when some thread goes to use them. Inbound "receiver" connections are removed from their collection in ConnectionTable when the inbound socket closes.

Connections are also removed from the table if the process they are connected to leaves the distributed system. This is done by GMSMembershipManager.

Connections are also shutdown and removed from ConnectionTable if you set a non-zero "socket-lease-time". The default for this setting is 60,000 milliseconds.

Finally, all connections are shutdown and removed from ConnectionTable when the cache closes.



On 6/29/17 5:18 AM, Vahram Aharonyan wrote:

Hi All,

We have few questions about org.apache.geode.internal.tcp.ConnectionTable.

1. Is it a common/global table that keeps all connections to all other nodes and whoever tries to open a connection to a different node just picks it from this table?

2. Which flow is responsible for closing a connection and removing it from the ConnectionTable?

3. We see that there are high amount of connections in the table and they are all marked as closed. We would like to understand what exactly is holding those to be removed from the table?

Thanks,

Vahram.


Reply via email to