Configuration of TCP connections

This topic is only applicable on Symphony grid.

TCP connection attributes are configured on a cluster basis to optimize data throughput over network connections. These attributes are set in the sd.xml configuration file.

The attributes should be configured for each connection endpoint in the Symphony environment, i.e., the client, Session Director, and session manager. The following table lists the relevant attributes.

Tip:

If you want to configure attributes with default values, it is not necessary to add them to the sd.xml file.


Attribute

Default

Notes

TCP_NODELAY

1

May be set to 0 for message aggregation.

TCP_KEEP_ALIVE_TIME

Value derived from current OS setting

OS default is 7200 seconds for most operating systems but may vary.

TCP_SEND_BUFFER_SIZE

65535

Any new value that is less than or equal to the default value is ignored.

TCP_RECV_BUFFER_SIZE

65535

Any new value that is less than or equal to the default value is ignored.


Note:

On Solaris platforms, TCP_KEEP_ALIVE_TIME can only be set system-wide and not on a per socket basis (this is an OS limitation). Symphony on Solaris ignores the TCP_KEEP_ALIVE_TIME option if it is set.

Sample configuration in sd.xml:

<ego:EnvironmentVariable name="SDK_TRANSPORT_OPT">TCP_NODELAY=0,TCP_KEEP_ALIVE_TIME=300, TCP_SEND_BUFFER_SIZE=65536,TCP_RECV_BUFFER_SIZE=65536</ego:EnvironmentVariable>
         ...
<ego:EnvironmentVariable name="SD_SDK_TRANSPORT_OPT">TCP_NODELAY=0,TCP_KEEP_ALIVE_TIME=300, TCP_SEND_BUFFER_SIZE=65536,TCP_RECV_BUFFER_SIZE=65536</ego:EnvironmentVariable>
         ...
<ego:EnvironmentVariable name="SSM_SDK_TRANSPORT_OPT">TCP_NODELAY=0,TCP_KEEP_ALIVE_TIME=300, TCP_SEND_BUFFER_SIZE=65536,TCP_RECV_BUFFER_SIZE=65536</ego:EnvironmentVariable>
         ...

Configuring local connections on clients

There may be situations where global TCP connection attributes are not appropriate for all connection endpoints in the system; for example, remote clients that are geographically distant from the cluster may require more time to send messages over the network. It is possible to override the system-wide attributes on the remote client host by setting environment variables in the OS shell before starting the client process. This method of overriding system-wide attributes can also be applied to remote hosts that are running services.

The environment variables correspond to the four TCP connection attributes described previously:


Environment variable on client

Overrides this attribute in SD.xml

PLATCOMMDRV_TCP_NODELAY

TCP_NODELAY

PLATCOMMDRV_TCP_KEEPALIVE_TIME

TCP_KEEP_ALIVE_TIME

PLATCOMMDRV_TCP_SEND_BUFFER_SIZE

TCP_SEND_BUFFER_SIZE

PLATCOMMDRV_TCP_RECV_BUFFER_SIZE

TCP_RECV_BUFFER_SIZE


Once the environment variables have been created, you can adjust their values to suit the network environment.