Class SocketOptions
Options to configure low-level socket options for the connections kept to the
Cassandra hosts.
Inheritance
SocketOptions
Assembly: Cassandra.dll
Syntax
public class SocketOptions
Fields
DefaultConnectTimeoutMillis
Declaration
public const int DefaultConnectTimeoutMillis = 5000
Field Value
DefaultReadTimeoutMillis
Declaration
public const int DefaultReadTimeoutMillis = 12000
Field Value
Properties
ConnectTimeoutMillis
Gets the number of milliseconds to wait for the socket to connect
Declaration
public int ConnectTimeoutMillis { get; }
Property Value
DefunctReadTimeoutThreshold
Gets the amount of requests that simultaneously have to timeout before closing the connection.
Declaration
public int DefunctReadTimeoutThreshold { get; }
Property Value
KeepAlive
Gets if TCP keep-alive must be used
Declaration
public bool? KeepAlive { get; }
Property Value
ReadTimeoutMillis
The per-host read timeout in milliseconds.
This defines how long the driver will wait for a given Cassandra node to answer a query.
Please note that this is not the maximum time a call to
Execute(string) may block; this is the maximum time that call will wait for one particular Cassandra host, but other hosts will be tried if one of them timeout. In other words, a
Execute(string) call may theoretically wait up to ReadTimeoutMillis * {number_of_cassandra_hosts} (though the total number of hosts tried for a given query also depends on the LoadBalancingPolicy in use).
Also note that for efficiency reasons, this read timeout is approximate, it may fire up to late. It is not meant to be used for precise timeout, but rather as a protection against misbehaving Cassandra nodes.
Declaration
public int ReadTimeoutMillis { get; }
Property Value
ReceiveBufferSize
Gets the size of the buffer used by the socket to receive
Declaration
public int? ReceiveBufferSize { get; }
Property Value
ReuseAddress
Declaration
public bool? ReuseAddress { get; }
Property Value
SendBufferSize
Gets the size of the buffer used by the socket to send
Declaration
public int? SendBufferSize { get; }
Property Value
SoLinger
Gets the number of seconds to remain open after the Socket.Close() is called.
Declaration
public int? SoLinger { get; }
Property Value
TcpNoDelay
Gets a Boolean value that specifies whether the stream Socket is using the Nagle algorithm.
When set to false
, the Nagle algorithm is enabled; when set to true
the Nagle algorithm is disabled (no delay). The default is true
.
Declaration
public bool? TcpNoDelay { get; }
Property Value
UseStreamMode
Determines if the driver should use either .NET NetworkStream interface (true) or SocketEventArgs interface (false, default)
to handle the reading and writing
Declaration
public bool UseStreamMode { get; }
Property Value
Methods
SetConnectTimeoutMillis(int)
Sets the number of milliseconds to wait for the socket to connect
Declaration
public SocketOptions SetConnectTimeoutMillis(int connectTimeoutMillis)
Parameters
Type |
Name |
Description |
int |
connectTimeoutMillis |
|
Returns
SetDefunctReadTimeoutThreshold(int)
Determines the amount of requests that simultaneously have to timeout before closing the connection.
Declaration
public SocketOptions SetDefunctReadTimeoutThreshold(int amountOfTimeouts)
Parameters
Type |
Name |
Description |
int |
amountOfTimeouts |
|
Returns
SetKeepAlive(bool)
Sets if TCP keep-alive must be used
Declaration
public SocketOptions SetKeepAlive(bool keepAlive)
Parameters
Type |
Name |
Description |
bool |
keepAlive |
|
Returns
SetReadTimeoutMillis(int)
Sets the per-host read timeout in milliseconds.
When setting this value, keep in mind the following:
- the timeout settings used on the Cassandra side (*_request_timeout_in_ms in cassandra.yaml) should be taken into account when picking a value for this read timeout. In particular, if this read timeout option is lower than Cassandra's timeout, the driver might assume that the host is not responsive and mark it down.
- the read timeout is only approximate and only control the timeout to one Cassandra host, not the full query (see ReadTimeoutMillis for more details).
Setting a value of 0 disables client read timeouts.
Declaration
public SocketOptions SetReadTimeoutMillis(int milliseconds)
Parameters
Type |
Name |
Description |
int |
milliseconds |
|
Returns
SetReceiveBufferSize(int)
Sets the size of the buffer used by the socket to receive
Declaration
public SocketOptions SetReceiveBufferSize(int receiveBufferSize)
Parameters
Type |
Name |
Description |
int |
receiveBufferSize |
|
Returns
SetReuseAddress(bool)
Declaration
public SocketOptions SetReuseAddress(bool reuseAddress)
Parameters
Type |
Name |
Description |
bool |
reuseAddress |
|
Returns
SetSendBufferSize(int)
Sets the size of the buffer used by the socket to send
Declaration
public SocketOptions SetSendBufferSize(int sendBufferSize)
Parameters
Type |
Name |
Description |
int |
sendBufferSize |
|
Returns
SetSoLinger(int)
Sets the number of seconds to remain open after the Socket.Close() is called.
Declaration
public SocketOptions SetSoLinger(int soLinger)
Parameters
Type |
Name |
Description |
int |
soLinger |
|
Returns
SetStreamMode(bool)
Sets if the driver should use either .NET NetworkStream (true) interface or SocketEventArgs interface (false, default)
to handle the reading and writing
Declaration
public SocketOptions SetStreamMode(bool useStreamMode)
Parameters
Type |
Name |
Description |
bool |
useStreamMode |
|
Returns
SetTcpNoDelay(bool)
Set a Boolean value that specifies whether the stream Socket is using the Nagle algorithm.
Use false
to enable Nagle algorithm; use true
to disable Nagle algorithm (no delay). The default is true
.
Declaration
public SocketOptions SetTcpNoDelay(bool tcpNoDelay)
Parameters
Type |
Name |
Description |
bool |
tcpNoDelay |
|
Returns